JPS59186055A - デバツグ装置 - Google Patents

デバツグ装置

Info

Publication number
JPS59186055A
JPS59186055A JP58062023A JP6202383A JPS59186055A JP S59186055 A JPS59186055 A JP S59186055A JP 58062023 A JP58062023 A JP 58062023A JP 6202383 A JP6202383 A JP 6202383A JP S59186055 A JPS59186055 A JP S59186055A
Authority
JP
Japan
Prior art keywords
program
cpu
counter
instruction
debugging
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP58062023A
Other languages
English (en)
Inventor
Haruo Takagi
高木 治夫
Yoshinori Takahashi
義則 高橋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Omron Corp
Original Assignee
Tateisi Electronics Co
Omron Tateisi Electronics Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tateisi Electronics Co, Omron Tateisi Electronics Co filed Critical Tateisi Electronics Co
Priority to JP58062023A priority Critical patent/JPS59186055A/ja
Publication of JPS59186055A publication Critical patent/JPS59186055A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 発明の背■1 この発明は、プログラム中の誤りを見つ(プで必要なら
ばこれを直すためのデバッグ装置に関する。
近年、プログラムの品質の向上を図るためにモジューラ
・プログラミングと呼ばれるプログラムの設計、作成手
法が多用されるようになってきた。従来のプログラミン
グの手法は、プログラムの開始から終了まで数千ステッ
プもあるような長いプログラムを一連のものとして作成
するものである。これに対して新しいモジュール・プロ
グラミングはプログラム全体をいくつかの論理的な小部
分に分割し、各部分を数十ステップ程度のまとまりにモ
ジュール化するものである。そしてこれらのモジ1−ル
は、第1図に示すように階層的な構造に組立てられ、」
−位にあるものを親、下位にあるものを子として親子関
係を結んでいる。たとえば親モジコール・プログラム2
.1の実行中に子モジュール・プログラム2.1.1の
CALL命令があるとプログラム2.1.1にジャンプ
してこのプログラム2.1.1が実行される。そしてプ
ログラム2.1.1中のRETURN命令によって親プ
ログラム2.1に戻る。
このような階層的構造のプログラムに対するデバッグも
また各モジュールに注目して行なわれる。たとえばモジ
ュール2.1に注目してこのデバッギングを行なう場合
には、このモジュール2.1はその下位のモジュール2
.1.1〜2.1.3を含んでいるからこれらの下位の
モジュール・プログラムの実行も当然伴なうことになる
。ところが、上位のモジュールのデバッグ時には下位の
モジュール・プログラムのデバッグは既に概略的に完了
しているということが前提となっているのが一般的なや
り方である。
したがって効率的なデバッギングを行なうためには、上
位モジニL−ル2.1から下位モジュール2.1.1に
移ったときにはただちに上位モジュール2,1に戻づこ
とが必要となる。
ところで従来のデバッギングの一般的な手法は、デバッ
グ対象プログラムの所望箇所にブレーク・ポイントをあ
らかじめ設定し、この後このプログラムを実機(デバッ
グ対象プログラムを実行づるためのCPUを含む装置)
により実行させ、設定されたブレーク・ポイン]・に至
ったときにプログラムの実行を停止させ、このとさの実
機のメモリやレジスタの内容をリード・ライトすること
により、命令やデータに誤りがあるかどうかをチェック
し、また必要ならばこれらを叱正Jる、というものであ
る。ブレーク・ポイン1〜の設定はデバッグ装置側で行
なわれる。従来はデバッグ装置に、ブ1ノーク・ポイン
]〜(ブレークづべきアドレス)をセラ1−するための
レジスタと、このレジスタにセットされたアドレスと実
機のアドレス・バスに出力されるアドレスどの一致をと
る比較回路とを設けていた。そして比較回路から出力さ
れる一致信号によって実礪のCPUを停止さけてい1〔
このようなデバッグ装置は、従来のモジュール化されて
いない開始り日ろ終了まで一連に連続したステップから
なるプログラムのデバツギングには好適ではあるが、上
述のようなモジュール・プログラミングにより作成され
たプログラムのデバッギングに適用すると不便な点があ
った。たとえば子モジュール・プログラム2.1゜1の
全ステップを実行さゼ親モジュール・プログラム2.1
に戻したいときには、親プログラム2.1のリターンす
べきアドレスをその都度上記レジスタに設定しな(プれ
ばならない。これは、プログラムの構造の変化があるに
もかかわらずそれに対してデバッグ装置の改良がなされ
ていないからである。モジュール・プログラミング手法
と同様にデバッグ装置においても各モジュールを1個の
まとまりとして取扱うことが必要である。
づなわら、従来のデバッグにa3いてよく用いられる手
法として、1命令ごとに順次実行させるステップ動作が
ある。これと同じように、子モジュール・プログラムを
1ステツプとして取扱うことができれば上記のような場
合にきわめて便利である。
発明の要点 この発明は、モジューラ・プログラミングにより作成さ
れたプログラムのデバッキングに好適であって、とくに
子モジュール・プログラムを1ステツプと同じように取
扱うことのできるデバッグ装置を提供することを目的と
する。
この発明によるデバッグ装置は、実機のCPUのデータ
バスに現われるコール命令を検出する手段、上記CPL
Jのデータバスに現われるリターン命令を検出する手段
、コール命令検出により加算しリターン命令、検出によ
り減算づる計数手段、1ステップ実行指令を入力するた
めのステップキー、およびステップキーによる入ツノが
あったときに上記CPUを実行させ、計数手段の計数値
が初期状態の場合には次のステップのタイミングでCP
Uの実行を停止させるステップ実行制御手段、を備えて
いることを特徴とする。
コール命令が検出されたとぎには次にリターン命令が検
出されるまでが1ステツプとして擬制されているから、
少なくとも1つの子モジコールを1命令として取扱うこ
とができる。子モジコールにさらにその子モジュールが
付随している場合にはコール命令が連続して検出され、
その後コール命令と同数のリターン命令が検出されるの
で、複数の子モジュールが1ステツプとして擬制される
ことになる。したがって、既にデパックされた子モジュ
ール・プログラムをそのまま実行させて親プログラムに
戻したい場合には、従来のように親プログラムのアドレ
スをその都度設定する必要はなく、ステップキーを押す
だけでその子プ[1グラムが1ステツプとして実行され
親プログラムに戻るので、作業効率の高いデバッキング
が可能となる。
上記計数手段の割数値を強制的に初期状態に保持する手
段を備えるようにすれば、ステップキーを従来通りに1
ステップ実行の指令のためにも用いることができる。
実施例の説明 第2図にJ3いて、デバッグ対象プログラムを実行する
実機にはCPU(1)がある。CPU(1)からはアド
レスバス、データバスおよびコントロールバスが引出さ
れている。デバッグ装装置にもまたデバッキングを行な
うためのCPU(図示路)が備えられている。
デバッグ装置において、コントロール回路(2)にはC
PU(1)のコントロール信号が入力している。このコ
ントロール回路(2)は、CPU (1)の実行(開始
)および停止(RUN/5TOP>の制御のための同期
信号TPI、TP2を作成するものである(第3図参照
)。
デコーダ(3)は0ALL(コール)命令およびRET
LJRN (リターン)命令を検出するものであり、そ
の入力側にはCPU(1)のデータバスが接続されてい
る。CALL−命令およびRETtJRN命令の各検出
信号はそれぞれAND回路(11)  (12)に送ら
れ、信号TPIのタンミンクで信号Ll、Dどしてカウ
ンタ(4)の加n入力端子(CU)、減樟入力端子(C
D)にそれぞれ人力Jる。カウンタ(4〉は信@Uの入
力によって+1され、信Q Dの入力によっ−C−1さ
れる。デコーダ(5)は、カウンタ(4)の計数値を解
読するもので、この計数値がO(カウンタ(4)が初期
状態にある)のときに1」レベルの信号AOを出力する
ステップ(STEP)キー(9)は1ステツプの実行を
指令するためのものである。マクロ・ステップキー(8
〉は、ステップキー(9)による指令が、1命令の実行
か、子モジュールの1ステツプとしての実行かのいずれ
であるかを決定するためのものである。このマクロ・ス
テップキー(8)がオフにされるとカウンタ(4)は強
制的にリセット(初期状態)される。
したがってデコーダ(5)の出力AOは常にHレベルと
なっているのでA N D回路(13)のゲートは開い
ている。
この状態でステップキー(9)が押されるとその立上り
が微分回路(14)で検出され、この微分パルスSはO
R回路(17)を経てDフリップフロップ(7)を強制
リセットする。このDフリップフロップ(7)のレット
出力QはCP(J(1)のプログラム実行を停止させる
ためのものである。Dフリップフロップ(7)のリセッ
ト己よってCPtJ(1)の動作停止が解除されるので
CPU(1)はプログラムを実行J−る。
しかしながら、微分パルスSはフリップ70ツブ(6)
をセットし、そのレフl−出力はAND回路(13)を
経てDフリップフロップ(7)のデータ入力端子にパノ
jする。Dフリップフロップ(7)のタイミング入力端
子王には信QTP2が入ツノしている。したがって、C
PLJ(1)の次のフ1ツヂ・リイクルで1)フリップ
フロップ(7)がセットされるので、CPU(1)の動
作は停止される。結局CPU(1)は1命令のみを実行
することになる。これが従来から行イfわれている1ス
テップ動作である。
ラン(RAN)キー(10)は(7止しているCPU(
1)の動作を聞夕(1さけプログラムを実行させるもの
である。このキー(10)が押されるとそのX′L上り
が微分回路(15)によって検出され、この微分信号は
OR回路(17)を経てDフリップ70ツブ(7)を強
制リセットするので、CPU (1)の動作停止が解除
される。Dフリップフロップ(7)の出力Qの立下りが
微分回路(16)で検出されフリップフロップ〈6)が
リセットされる結果、Dフリップフロップ(7)はリセ
ット状態に保持される。なお、1ステップ動作の制御時
には、微分パルスSは若干遅延されるので(図示略)、
回路(1G)の微分パルスの方が早くフリップフロップ
(6)に入ノjするようになっている。
マクロ・ステップキー(8)がオンされるとカウンタ(
4〉の強制リセツ1〜が解除される。
この状態でステップキー(9)が押された場合に、CP
U(1)のデータバスに川われるのが0ALL命令以外
の命令のときにはカウンタ(4)の計数値はOであって
変化しないので、デコーダ(5)からは1−ルベルの信
号△0が出力されたままであり、上述のようにCPtJ
(1)は1命令実行で停止づる。0ALL命令が検出さ
れると、第3図を参照して、カウンタ(4)にモ1され
るのでデコーダ(5)の出力AOはしレベルになる。し
たがってAND回路(13)のゲートが閉じ゛られ、ノ
リツブフロップく6)がセットされていたとしてもその
出力は常に「レベルになる。この結果、Dフリップフロ
ップ(7〉はセットされることはなくリセッ1へされた
状態に保持されるので、CPU(1)4よ停止I!ず継
続してブ[lグラムを実行り−る。ぞしてRFTURN
命令が検出された時点でカウンタ(4)の泪数値が0に
なるので、デコーダ(5)の出力△OがHレベルとなり
、次のTP2のタミングでDフリップフ[1ツブ(7)
がレットされ、CPU(1)はその動作を停止する。 
RE T U RN命令の検出以前に再びCALL命令
が検出された場合には、続けて2回のRETURN命令
の検出までCPU (1)はプログラム実行を継続する
のは容易に理解できるであろう。
なお、図示は省略されているが、デバッグ装置には従来
から用いられているブレーク・ポイント検出回路も含ま
れていることは言うまでもない。このブレーク・ポイン
ト検出回路は、ブレーク(停止)させるべきアドレスを
設定し、CPU (1)がデバッグ対象プログラムを実
行中に実行または参照したアドレスがこの設定アドレス
と一致したときに、ブレーク・ポイント検出回路を出ツ
ノするものである。ブレーク・ポイント検出回路は、た
とえばブレークさせるべきアドレスを設定するレジスタ
と、比較回路とからなり、比較回路は、レジスタに設定
されたアドレスとCPU(1)のアドレスバスから入ツ
ノするアドレスとが一致したときにブレーク・ポイント
検出信号を出ノJする。この検出信号はDフリップフロ
ップ(7)をセットするのに用いられる。
【図面の簡単な説明】
第1図はプログラムの階層的構造を示1図、第2図はこ
の発明の実施例を示すもので、デバッグ装置のブロック
図、第3図はデバッグ装置の動作を示づタイム・ヂャー
1〜である。 (1)・・・実機のCPU、(3)・・・コール命令、
リターン命令検出用デ゛コーダ、(/l)・・・カウン
タ、(5)・・・ノjウンタの初期状態検出用デコーダ
、(7)・・・CI−)U停止制御用Dフリップフロッ
プ、(8)・・・マクロ・ステップニ1−−1(9)・
・・ステップキー、(13〉・・・AND回路。 1ス   上

Claims (2)

    【特許請求の範囲】
  1. (1)デバッグ対象プログラムを実行するCPUのデー
    タバスに現われるコール命令を検出する手段、 上記CPUのデータバスに現われるリターン命令を検出
    する手段、 コール命令検出により加算しリターン命令検出により減
    算する計数手段、 1ステップ実行指令を入力するだめのステップキー、お
    よび ステップキーによる入力があったときに上記CPUを実
    行さぜ、計数手段の計数値が初期状態の場合には次のス
    デップのタイミングでCPUの実行を停止させるステッ
    プ実行制御手段、を備えているデバッグ装置。
  2. (2)計数手段の計数値を強制的に初期状態に保持する
    手段を備えている特許請求の範囲第(1)項記載のデバ
    ッグ装置。
JP58062023A 1983-04-07 1983-04-07 デバツグ装置 Pending JPS59186055A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP58062023A JPS59186055A (ja) 1983-04-07 1983-04-07 デバツグ装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP58062023A JPS59186055A (ja) 1983-04-07 1983-04-07 デバツグ装置

Publications (1)

Publication Number Publication Date
JPS59186055A true JPS59186055A (ja) 1984-10-22

Family

ID=13188156

Family Applications (1)

Application Number Title Priority Date Filing Date
JP58062023A Pending JPS59186055A (ja) 1983-04-07 1983-04-07 デバツグ装置

Country Status (1)

Country Link
JP (1) JPS59186055A (ja)

Similar Documents

Publication Publication Date Title
JPH06139107A (ja) ブレイクアドレス検出回路
US5740360A (en) Apparatus and method for resetting a microprocessor in the event of improper program execution
JPS6120145A (ja) マイクロプロセツサ動作解析装置
JPS59186055A (ja) デバツグ装置
JPS60124746A (ja) デ−タ処理装置
SU763900A1 (ru) Устройство дл отладки программ
JPH0573296A (ja) マイクロコンピユータ
JPS63245735A (ja) デ−タ処理装置
JPS6011946A (ja) プログラマブルコントロ−ラ
JPS59153248A (ja) デバッグ装置
JPH01243141A (ja) 情報処理装置
JPS63223930A (ja) 専用プロセツサのプログラムのシミユレ−シヨン方式
JPH0223435A (ja) マイクロコンピュータ
JPS61240340A (ja) マイクロプログラム制御装置
JPS5848154A (ja) プログラム1ステツプ制御方式
JPS59184955A (ja) デバツグ装置
JPS5935250A (ja) プログラム制御装置
JPH0436418B2 (ja)
JPH01201737A (ja) マイクロプロセッサ
JPS5968067A (ja) 走行ステツプ数指定処理方式
JPS60209851A (ja) プログラム・シ−ケンス・ストツプ方式
JPS62197834A (ja) マイクロプログラム制御装置
JPS6249454A (ja) マイクロプログラムのデバツグ支援回路
JPS63197247A (ja) マイクロプログラム制御装置
JPS61292757A (ja) マイクロプログラム制御装置のトレ−ス方式