JPS63231640A - プログラムデバグ方式 - Google Patents
プログラムデバグ方式Info
- Publication number
- JPS63231640A JPS63231640A JP62066171A JP6617187A JPS63231640A JP S63231640 A JPS63231640 A JP S63231640A JP 62066171 A JP62066171 A JP 62066171A JP 6617187 A JP6617187 A JP 6617187A JP S63231640 A JPS63231640 A JP S63231640A
- Authority
- JP
- Japan
- Prior art keywords
- address
- branch instruction
- instruction
- program
- interrupt
- 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
Links
- 238000000034 method Methods 0.000 claims description 5
- 230000006870 function Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 1
Landscapes
- Debugging And Monitoring (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
(産業上の利用分野)
本発明は、分岐命令トレース手段と、予め指定されたア
ドレスに制御が渡ると割り込みを発生させる命令アドレ
ス一致手段を具備する中央処理装置ム有するコンピュー
タシステムにおけるデバグ方式に間する。
ドレスに制御が渡ると割り込みを発生させる命令アドレ
ス一致手段を具備する中央処理装置ム有するコンピュー
タシステムにおけるデバグ方式に間する。
(従来の技術)
プログラムデパグ時、不正な分岐命令の実行によりプロ
グラムの実行シーケンスが乱れることは、度々経験する
ことである。この場合、プログラムの実行シーケンスを
乱す原因となった命令はとこにあるのか、その所在を明
らかにすることがデバグをする上で最も大切である。
グラムの実行シーケンスが乱れることは、度々経験する
ことである。この場合、プログラムの実行シーケンスを
乱す原因となった命令はとこにあるのか、その所在を明
らかにすることがデバグをする上で最も大切である。
従来、この種の問題を解決する方法として、ハードウェ
アが提供している分岐命令トレース機能がある0分岐命
令トレース機能は、どの命令がどんな順序で実行された
のかに関する情報を提供する。したがって、上述の問題
に遭遇した場合、この分岐命令トレース機能を使って不
正分岐命令の場所を見出していた。
アが提供している分岐命令トレース機能がある0分岐命
令トレース機能は、どの命令がどんな順序で実行された
のかに関する情報を提供する。したがって、上述の問題
に遭遇した場合、この分岐命令トレース機能を使って不
正分岐命令の場所を見出していた。
上述した従来の分岐命令トレース機能を使ってプログラ
ムデパグをする場合、被デバグプログラムにデバグ区間
なるものを定義する必要があり、デバガは、このデバグ
区間内に存在する分岐命令のみをトレースの対象とする
ことによりデバグの効率化を計っているが、プログラム
の実行シーケンスを乱す原因となった不正分岐命令の場
所が不明な場合、前述のデバグ区間を被デバグプログラ
ムのどこに設定すればよいかを判断するのが難しく、結
局、試行錯誤で適当なデバグ区間を見つけざるを得ず、
その結果、問題解決までに多大の工数およびマシン時間
を費やすという欠点がある。
ムデパグをする場合、被デバグプログラムにデバグ区間
なるものを定義する必要があり、デバガは、このデバグ
区間内に存在する分岐命令のみをトレースの対象とする
ことによりデバグの効率化を計っているが、プログラム
の実行シーケンスを乱す原因となった不正分岐命令の場
所が不明な場合、前述のデバグ区間を被デバグプログラ
ムのどこに設定すればよいかを判断するのが難しく、結
局、試行錯誤で適当なデバグ区間を見つけざるを得ず、
その結果、問題解決までに多大の工数およびマシン時間
を費やすという欠点がある。
本発明のプログラムデパグ方式は、中央処理装置の分岐
命令トレース手段と命令アドレス一致手段とを活性化さ
せ、被デバグプログラム内の分岐命令が実行され、割り
込みが発生した時点で中央処理装置の状態と該分岐命令
自身のアドレスを主記憶装置の第1の作業エリアに退避
し、さらに被デバグプログラム内の予め指定されたアド
レスに制御が渡り、割り込みが発生した時点で中央処理
装置の状態と該アドレスを主記憶装置の第2の作業エリ
アに退避し、第1の作業エリアに退避されている分岐命
令アドレスを第2の作業エリアに退避されているアドレ
スと比較して所望の分岐命令を求める。
命令トレース手段と命令アドレス一致手段とを活性化さ
せ、被デバグプログラム内の分岐命令が実行され、割り
込みが発生した時点で中央処理装置の状態と該分岐命令
自身のアドレスを主記憶装置の第1の作業エリアに退避
し、さらに被デバグプログラム内の予め指定されたアド
レスに制御が渡り、割り込みが発生した時点で中央処理
装置の状態と該アドレスを主記憶装置の第2の作業エリ
アに退避し、第1の作業エリアに退避されている分岐命
令アドレスを第2の作業エリアに退避されているアドレ
スと比較して所望の分岐命令を求める。
(作 用)
したがって、実行シーケンスを乱した分岐命令はどれで
あるかを極めて容易に見出すことができプログラムデパ
グの効率化を計ることができる。
あるかを極めて容易に見出すことができプログラムデパ
グの効率化を計ることができる。
次に、本発明の実施例について図面を参照して説明する
。
。
第1図は本発明のブOグラムデバグ方式の一実施例の説
明図である。被デバグプログラムの中に分岐命令井1(
i=1〜n)があり、この中のいずれかの命令が実行さ
れると、被デパグプログラム内のアドレスA(こ制御が
渡るものとする。アドレスAに制御を渡す分岐命令はど
れかを決定するために、まず中央処理袋N(以後CPU
と称す)を分岐命令トレースモードおよび命令アドレス
一致モードにして分岐命令実行時またはアドレスAに制
御が渡ったとき割込みを発生するようにしておく、この
状態で被デバグプログラムを起動すると分岐命令$1(
i=1〜n)7a実行する毎に割込みが発生するので、
その時点のCPUの状態を作業エリアWK井1に退避す
る。この作業エリアWK$1には該分岐命令#i (i
=1〜n)自身のアドレスも含まれる。さらに、アドレ
スAに制御が渡ると再び割込みが発生するので、その時
点のCPUの状態を作業エリアWK#2に退避する。こ
の作業エリアWK$2にはアドレスA自身も含まれる0
作業エリアWに井2への退避が終ると、作業エリアWに
井1に格納されている分岐命令#iのアドレスと作業エ
リアWK井2tこ格納されているアドレスAとを比較し
て所望の分岐命令を求める。
明図である。被デバグプログラムの中に分岐命令井1(
i=1〜n)があり、この中のいずれかの命令が実行さ
れると、被デパグプログラム内のアドレスA(こ制御が
渡るものとする。アドレスAに制御を渡す分岐命令はど
れかを決定するために、まず中央処理袋N(以後CPU
と称す)を分岐命令トレースモードおよび命令アドレス
一致モードにして分岐命令実行時またはアドレスAに制
御が渡ったとき割込みを発生するようにしておく、この
状態で被デバグプログラムを起動すると分岐命令$1(
i=1〜n)7a実行する毎に割込みが発生するので、
その時点のCPUの状態を作業エリアWK井1に退避す
る。この作業エリアWK$1には該分岐命令#i (i
=1〜n)自身のアドレスも含まれる。さらに、アドレ
スAに制御が渡ると再び割込みが発生するので、その時
点のCPUの状態を作業エリアWK#2に退避する。こ
の作業エリアWK$2にはアドレスA自身も含まれる0
作業エリアWに井2への退避が終ると、作業エリアWに
井1に格納されている分岐命令#iのアドレスと作業エ
リアWK井2tこ格納されているアドレスAとを比較し
て所望の分岐命令を求める。
第2図はこの制御順序を示すフローチャートである。ま
ず、CPUを分岐命令トレースモードおよび命令アドレ
ス一致モードにしくステップ10)被デパグブOグラム
内の分岐命令実行時および被デパグプログラム内の予め
指定されたアドレスに 。
ず、CPUを分岐命令トレースモードおよび命令アドレ
ス一致モードにしくステップ10)被デパグブOグラム
内の分岐命令実行時および被デパグプログラム内の予め
指定されたアドレスに 。
制御が渡った時点で割込みが発生するようにしておく0
次に、被デパグプログラムを起動する(ステップ20)
、被デバグプログラムに制御が渡り、被デバグプログラ
ム内の分岐命令が実行されると割込みが発生し、割込み
発生時点でのCPUの状態を作業エリアWに井11こ退
避しくステップ30)、該分岐命令の分岐先に制御を渡
して(ステップ40)処理を継続させる。その後、ある
分岐命令が実行されて被デバグプログラム内の予め指定
されたアドレスに制御が移ると、CPUは命令アドレス
一致モードになっているため割込みが発生し、割込みが
発生した時点のCPUの状態をステップ30で使用した
作業エリアWに#1とは別の作業エリアWK井2に退避
する(ステップ50)。
次に、被デパグプログラムを起動する(ステップ20)
、被デバグプログラムに制御が渡り、被デバグプログラ
ム内の分岐命令が実行されると割込みが発生し、割込み
発生時点でのCPUの状態を作業エリアWに井11こ退
避しくステップ30)、該分岐命令の分岐先に制御を渡
して(ステップ40)処理を継続させる。その後、ある
分岐命令が実行されて被デバグプログラム内の予め指定
されたアドレスに制御が移ると、CPUは命令アドレス
一致モードになっているため割込みが発生し、割込みが
発生した時点のCPUの状態をステップ30で使用した
作業エリアWに#1とは別の作業エリアWK井2に退避
する(ステップ50)。
次に、ステップ30で使用した作業エリアWに井1から
、アドレスAに制御が渡る直前に実行された分岐命令自
身のアドレスIC井1P8求める(ステップ60)、ス
テップ50で使用した作業エリアWK井2からアドレス
A(=IC井2)を求める(ステップ70)、ステップ
60で得られた分岐命令アドレスIC井1とステップ7
0で得られたアドレスA(=IC井2)とを比較する(
ステップ80)、比較の結果、それらが等しければステ
ップ30で使用した作業エリアWK井1とステップ50
で使用した作業エリアWK井2の内容をプリントアウト
し、目的とする分岐命令が得られたことを外部に通知す
る(ステ・シブ90)、もし、それらが等しくなければ
目的とする分岐命令を求めるため以降の処理を継続する
(ステ・シブ100 ) 。
、アドレスAに制御が渡る直前に実行された分岐命令自
身のアドレスIC井1P8求める(ステップ60)、ス
テップ50で使用した作業エリアWK井2からアドレス
A(=IC井2)を求める(ステップ70)、ステップ
60で得られた分岐命令アドレスIC井1とステップ7
0で得られたアドレスA(=IC井2)とを比較する(
ステップ80)、比較の結果、それらが等しければステ
ップ30で使用した作業エリアWK井1とステップ50
で使用した作業エリアWK井2の内容をプリントアウト
し、目的とする分岐命令が得られたことを外部に通知す
る(ステ・シブ90)、もし、それらが等しくなければ
目的とする分岐命令を求めるため以降の処理を継続する
(ステ・シブ100 ) 。
以上説明したように本発明は、不正分岐命令の実行によ
りプログラムの実行シーケンスが乱れた場合、CPUを
分岐命令トレースモードおよび命令アドレス一致モード
にし、分岐命令実行時および予め指定されたアドレスに
制御が移ったときに発生する割込みを契機にその時点の
CPUの状態を退避し、退避された2つの命令アドレス
、すなわち分岐命令アドレスと予め指定されたアドレス
を比較することにより、実行シーケンスを乱した分岐命
令はどれであるかを極めて容易に見出すことができるた
めプログラムデパグの効率化を計ることができる効果が
ある。
りプログラムの実行シーケンスが乱れた場合、CPUを
分岐命令トレースモードおよび命令アドレス一致モード
にし、分岐命令実行時および予め指定されたアドレスに
制御が移ったときに発生する割込みを契機にその時点の
CPUの状態を退避し、退避された2つの命令アドレス
、すなわち分岐命令アドレスと予め指定されたアドレス
を比較することにより、実行シーケンスを乱した分岐命
令はどれであるかを極めて容易に見出すことができるた
めプログラムデパグの効率化を計ることができる効果が
ある。
第1図は本発明のプログラムデパグ方式の一実施例の説
明図、第2図は本実施例の処理を示すフローチャートで
ある。 特許出願人 8 i! jf’c a :E * n
・′)。
明図、第2図は本実施例の処理を示すフローチャートで
ある。 特許出願人 8 i! jf’c a :E * n
・′)。
Claims (1)
- 【特許請求の範囲】 分岐命令トレース手段と、予め指定されたアドレスに制
御が渡ると割込みを発生させる命令アドレス一致手段を
具備する中央処理装置を有するコンピュータシステムに
おいて、 該中央処理装置の分岐命令トレース手段と命令アドレス
一致手段とを活性化させ、被デパグプログラム内の分岐
命令が実行され、割り込みが発生した時点で中央処理装
置の状態と該分岐命令自身のアドレスを主記憶装置の第
1の作業エリアに退避し、さらに被デパグプログラム内
の予め指定されたアドレスに制御が渡り割り込みが発生
した時点で中央処理装置の状態と該アドレスを主記憶装
置の第2の作業エリアに退避し、第1の作業エリアに退
避されている分岐命令アドレスを第2の作業エリアに退
避されているアドレスと比較して所望の分岐命令を求め
るプログラムデパグ方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP62066171A JPS63231640A (ja) | 1987-03-20 | 1987-03-20 | プログラムデバグ方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP62066171A JPS63231640A (ja) | 1987-03-20 | 1987-03-20 | プログラムデバグ方式 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPS63231640A true JPS63231640A (ja) | 1988-09-27 |
Family
ID=13308133
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP62066171A Pending JPS63231640A (ja) | 1987-03-20 | 1987-03-20 | プログラムデバグ方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS63231640A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08272647A (ja) * | 1995-03-30 | 1996-10-18 | Nec Corp | ソフトウェア評価装置 |
US7996686B2 (en) | 2008-07-07 | 2011-08-09 | International Business Machines Corporation | Branch trace methodology |
-
1987
- 1987-03-20 JP JP62066171A patent/JPS63231640A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08272647A (ja) * | 1995-03-30 | 1996-10-18 | Nec Corp | ソフトウェア評価装置 |
US7996686B2 (en) | 2008-07-07 | 2011-08-09 | International Business Machines Corporation | Branch trace methodology |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPS5886648A (ja) | トレ−ス装置 | |
JPS63231640A (ja) | プログラムデバグ方式 | |
JPH0581070A (ja) | プログラマブルコントローラ、およびプログラマブルコントローラにおけるユーザプログラム実行方法 | |
JPS63205740A (ja) | プログラム実行トレ−ス処理方式 | |
JP2738360B2 (ja) | マルチタスクプログラムのデバッグ方法およびデバッグシステム | |
JPS6376053A (ja) | マルチコンピユ−タ装置 | |
JPS63178343A (ja) | 中断点の設定方式 | |
JPS59183443A (ja) | デバツグ装置 | |
JPH0461380B2 (ja) | ||
JPH0377541B2 (ja) | ||
JPS63153648A (ja) | プログラムメンテナンス装置 | |
JPH02284236A (ja) | プログラムデバッグ処理装置 | |
JPS61180344A (ja) | 高級言語のステツプ実行システム | |
KR100231692B1 (ko) | Chill 디버깅 정보 생성방법 | |
JPS59202548A (ja) | デバツグ装置 | |
JPS58109947A (ja) | シミユレ−ト装置 | |
JPH0750445B2 (ja) | プログラムのデバツグ方式 | |
JPH02195450A (ja) | データ処理装置 | |
JPH0659931A (ja) | デバッグ装置 | |
JPS62217332A (ja) | 電子計算機制御方式 | |
JPH0772874B2 (ja) | 割込み受取り装置 | |
JPH02120940A (ja) | デバッグ支援回路 | |
JPH04367902A (ja) | プログラマブルコントローラ | |
JPS61286936A (ja) | ステップ動作制御方式 | |
JPH02140839A (ja) | プレークポイントの処理方式 |