JPS59154553A - デバグ割込み方式 - Google Patents
デバグ割込み方式Info
- Publication number
- JPS59154553A JPS59154553A JP58029159A JP2915983A JPS59154553A JP S59154553 A JPS59154553 A JP S59154553A JP 58029159 A JP58029159 A JP 58029159A JP 2915983 A JP2915983 A JP 2915983A JP S59154553 A JPS59154553 A JP S59154553A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- psw
- address
- debug
- program
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing 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
【発明の詳細な説明】
〔発明の利用分野〕
本発明は、情報処理装置におけるプログラムのデバグの
ため、プログラムの実行中にデバグ割込みを発生する方
式に関する。
ため、プログラムの実行中にデバグ割込みを発生する方
式に関する。
従来、プログラムのデバグには、デバグされる被デバグ
プログラムから、デバグな制御するプログラム(以下D
Uと称す)に制御を移行(以下ディレールと称す)させ
、ディレール時点における被デバグプログラムの状態を
DUで調べる方法等がとらhてきた。すなわち、被デバ
グプログラムが第1図(a)のごとく、その一部が命令
1〜5かも成り、命令1,4.5は2バイト長の命令、
命令2゜3は4バイト長の命令であり、命令3の実行直
前にディレール点を設定する場合には、第1図中)のご
とく、再コンパイルによって命令3の前にDUへの分岐
命令6を埋め込む方法や、第1図(C)のごと(第1図
(a)の命令3をDUの作業域7に退避した後に、命令
3の先頭を未定義の命令8に置き替え、プログラムエラ
ーによる割込みでDUに制御を移す方法があった。しか
し、前者の方法は、デバグ完了後、再コンパイルによっ
てDUへの分岐命令を除去しなければならず、また、後
者の方法は、DUの制御下で作業域7に退避した命令3
を実行後、命令4に制御を戻すために命令4のアドレス
をD Uが管理しなければiよらない欠点があった。
プログラムから、デバグな制御するプログラム(以下D
Uと称す)に制御を移行(以下ディレールと称す)させ
、ディレール時点における被デバグプログラムの状態を
DUで調べる方法等がとらhてきた。すなわち、被デバ
グプログラムが第1図(a)のごとく、その一部が命令
1〜5かも成り、命令1,4.5は2バイト長の命令、
命令2゜3は4バイト長の命令であり、命令3の実行直
前にディレール点を設定する場合には、第1図中)のご
とく、再コンパイルによって命令3の前にDUへの分岐
命令6を埋め込む方法や、第1図(C)のごと(第1図
(a)の命令3をDUの作業域7に退避した後に、命令
3の先頭を未定義の命令8に置き替え、プログラムエラ
ーによる割込みでDUに制御を移す方法があった。しか
し、前者の方法は、デバグ完了後、再コンパイルによっ
てDUへの分岐命令を除去しなければならず、また、後
者の方法は、DUの制御下で作業域7に退避した命令3
を実行後、命令4に制御を戻すために命令4のアドレス
をD Uが管理しなければiよらない欠点があった。
本発明は、上記従来の欠点を除去するため、特定のコー
ドを持つデバグ割込み発生用の命令(以下、DI命令と
称す)により、該DI命令が通常状態で発イ1下される
場合は、該命令によるオペレーションを行わずにその直
後にある命令を実行し、J) I命令がデバグ状態で発
行される場合は、デバグ割込みを発生し、該割込みに伴
ってメモリに格納される命令アドレスは、該DI命令の
アドレスに該命令の所定フィールドの内容を加算するこ
とてよって得るようにしたものである4、〔発明の実施
例〕 第2図はDI命令の形式を例示したものである。
ドを持つデバグ割込み発生用の命令(以下、DI命令と
称す)により、該DI命令が通常状態で発イ1下される
場合は、該命令によるオペレーションを行わずにその直
後にある命令を実行し、J) I命令がデバグ状態で発
行される場合は、デバグ割込みを発生し、該割込みに伴
ってメモリに格納される命令アドレスは、該DI命令の
アドレスに該命令の所定フィールドの内容を加算するこ
とてよって得るようにしたものである4、〔発明の実施
例〕 第2図はDI命令の形式を例示したものである。
第2図において、9はDI命令、1oはDI命令の命令
コードフィールド(以下、Fフィールドと称す)、11
は次に実行されZ)茄仝のアドレス生成に利用され、る
第1のフィールド(以下、R1フイールドと称す)、】
2は割込みコードの作成に利用される第2のフィールド
(以下、R2フイ〜ルドと称す)である。以下、本DI
稲令の長さは2バイトであるとする。
コードフィールド(以下、Fフィールドと称す)、11
は次に実行されZ)茄仝のアドレス生成に利用され、る
第1のフィールド(以下、R1フイールドと称す)、】
2は割込みコードの作成に利用される第2のフィールド
(以下、R2フイ〜ルドと称す)である。以下、本DI
稲令の長さは2バイトであるとする。
第3図に本発明によるデバグ割込ノメカ式の処理フロー
を示す。以下の説明において、デバグ状態であるか通常
状態であるかを表示するビットおよび次に実行すべき命
令のアドレス(以下SCCと称す)は、情報処理装置内
のプログラム状態語(以下、PSWど称す)と呼ばれる
レジスフに保持されているものとする。
を示す。以下の説明において、デバグ状態であるか通常
状態であるかを表示するビットおよび次に実行すべき命
令のアドレス(以下SCCと称す)は、情報処理装置内
のプログラム状態語(以下、PSWど称す)と呼ばれる
レジスフに保持されているものとする。
いま、pswのSCCで指定されたアドレスに第2図の
I) I命令9が存在しており、情報処理装置(いわゆ
るCPU )が読出された該命令のFフィールド10を
解読してI) I命令であることを検出した時、PSW
が通常状態を表示していれば、DI命令の命令長(本例
では2)をSCCに加算1゜てI) I命令の実行を終
える(■→■→■)。これKより、I) I命令は一般
にノーオペレーション(N OIF )命令と呼ばれる
命令と同様に何らプログラムの論理に関与せずに終了し
、DI命令の2バイトあとにある次の命令が実行される
。
I) I命令9が存在しており、情報処理装置(いわゆ
るCPU )が読出された該命令のFフィールド10を
解読してI) I命令であることを検出した時、PSW
が通常状態を表示していれば、DI命令の命令長(本例
では2)をSCCに加算1゜てI) I命令の実行を終
える(■→■→■)。これKより、I) I命令は一般
にノーオペレーション(N OIF )命令と呼ばれる
命令と同様に何らプログラムの論理に関与せずに終了し
、DI命令の2バイトあとにある次の命令が実行される
。
一方、PSWのSCCで指定されたアドレスにDI命令
9が存在し、情報処理装置がFフィールドを解読してD
I命令であることを検出した時、PSWがデバグ状態を
表示していれば、情報処理装置はその5CCKDI命令
9のR1フィールド11の値を加算した値でPSW内の
SCCを更新してデバグ割込み信号を発生する(■→(
2→■→■)。
9が存在し、情報処理装置がFフィールドを解読してD
I命令であることを検出した時、PSWがデバグ状態を
表示していれば、情報処理装置はその5CCKDI命令
9のR1フィールド11の値を加算した値でPSW内の
SCCを更新してデバグ割込み信号を発生する(■→(
2→■→■)。
この割込みに伴ノよって、公知の例に従って、更新後の
SCCを含むPSWの内容は、所定のメモリアドレスに
旧PSWとして格納される(■)。
SCCを含むPSWの内容は、所定のメモリアドレスに
旧PSWとして格納される(■)。
Riフィールドの値をDI命令自身の命令長である2と
したJ) I命令は、従来性われてきた第、1図(b)
のデ・フグ方法において分岐命令60代り圧使用するこ
とができる。この場合、デバグ体態で被デバグブログヲ
ムを実行させると、命令6の位置にあるDI命令を実行
するとデバグ割込みが発生する。このとき旧PSWとし
て格納された内容には、1) I命令のアドレス+2番
地にある命令3のアドレスが含まれている。割込みに伴
ない、P SWにはDUの入口アドレスを含む新しいP
SWがロードされ(■)、DUに制御が移行し、DUで
は被デバグプログラムの命令20i)実行後で、かつ命
令3の実行前の状態を解析J゛ることかできる(■)。
したJ) I命令は、従来性われてきた第、1図(b)
のデ・フグ方法において分岐命令60代り圧使用するこ
とができる。この場合、デバグ体態で被デバグブログヲ
ムを実行させると、命令6の位置にあるDI命令を実行
するとデバグ割込みが発生する。このとき旧PSWとし
て格納された内容には、1) I命令のアドレス+2番
地にある命令3のアドレスが含まれている。割込みに伴
ない、P SWにはDUの入口アドレスを含む新しいP
SWがロードされ(■)、DUに制御が移行し、DUで
は被デバグプログラムの命令20i)実行後で、かつ命
令3の実行前の状態を解析J゛ることかできる(■)。
その後、DUはデバグ割込みに伴って格納された旧PS
WをPSWにロードすることにより、被デバグプログラ
ムの命令3に制御を戻すことができる(■)。なお、こ
の方法を用いたデバグでは、デバグ完了後、DI命令を
除去するために+IJコンパイルを行う必要はなく、通
常状態下で、第1図(a)のプログラムと同一の結果を
(4Jるごとができる。
WをPSWにロードすることにより、被デバグプログラ
ムの命令3に制御を戻すことができる(■)。なお、こ
の方法を用いたデバグでは、デバグ完了後、DI命令を
除去するために+IJコンパイルを行う必要はなく、通
常状態下で、第1図(a)のプログラムと同一の結果を
(4Jるごとができる。
従来性われてきた第1図(C)のデバグ方法に対しては
、未定義の命令80代りに、命仝3の命令長(本例では
4)を1−t1フィールドの値としたI) I命令を用
いることができる。この場合も、デバグ状態で命令8の
位置にあるI) I命令を実行すると、デバグ割込みが
発生し1、旧PSWが格納される(■)。このときII
J P S WとI、2て格納された内容には、DI命
令のアドレス+4番地にある命令4のアドレスが含まれ
ている。割込みによってD Uに制御が移行すると(■
)、、I)Uは被デバグプログラムの命令2の実行後で
、かつ命令3の実行前の状態を解析する(■)。解析後
はDUはDUの作挙域7に退Rされた命令3を実行L
(■)、デバグ割込みに伴って格納された旧)) S
WをI)SWにロードすることにより、被デバグプログ
ラムの命令4に制御を戻すことができる((Φ)。命令
4のアドレスはDI命令により生成され旧PSWの一部
として格納されているためI) Uは命令4のアドレス
を管理する必要がない。
、未定義の命令80代りに、命仝3の命令長(本例では
4)を1−t1フィールドの値としたI) I命令を用
いることができる。この場合も、デバグ状態で命令8の
位置にあるI) I命令を実行すると、デバグ割込みが
発生し1、旧PSWが格納される(■)。このときII
J P S WとI、2て格納された内容には、DI命
令のアドレス+4番地にある命令4のアドレスが含まれ
ている。割込みによってD Uに制御が移行すると(■
)、、I)Uは被デバグプログラムの命令2の実行後で
、かつ命令3の実行前の状態を解析する(■)。解析後
はDUはDUの作挙域7に退Rされた命令3を実行L
(■)、デバグ割込みに伴って格納された旧)) S
WをI)SWにロードすることにより、被デバグプログ
ラムの命令4に制御を戻すことができる((Φ)。命令
4のアドレスはDI命令により生成され旧PSWの一部
として格納されているためI) Uは命令4のアドレス
を管理する必要がない。
なお、DI命令のR2フイールドはそのまま、あるいは
R2フィールドで指定するレジスタの内容をデバグ割込
みに伴ってメモリに格納されろt′iυ込みコー ドと
l−で使用することによって、DUはディレールの種別
等を割込みコードから判定することが可能である。さら
に、R2フィールドの値がl時定の値(例えば0)のと
ぎには、デバグ状態においてもDI命令によるデバグ割
込みを禁止することによって、被デバグプログラム内に
埋め込まれた複数のD■命伶のうち一部のR2フィール
ドを0とすることにより、ディ1.′−ル点と1−て不
活性化する手法としても用いることができる。
R2フィールドで指定するレジスタの内容をデバグ割込
みに伴ってメモリに格納されろt′iυ込みコー ドと
l−で使用することによって、DUはディレールの種別
等を割込みコードから判定することが可能である。さら
に、R2フィールドの値がl時定の値(例えば0)のと
ぎには、デバグ状態においてもDI命令によるデバグ割
込みを禁止することによって、被デバグプログラム内に
埋め込まれた複数のD■命伶のうち一部のR2フィール
ドを0とすることにより、ディ1.′−ル点と1−て不
活性化する手法としても用いることができる。
以上説明したよ5K、本発明によれば1)■命令のR1
フイールドは、DUから被デバグプログラムへ制御を戻
す際の命令アドレスをディレールの時点で旧PSWに設
定しておく1・段を提供し′Cおり、D Uの負担を軽
減する効果がある。さらンこ、DI命令を目的プログラ
ムの生成時にあらかじめ埋め込んだデバグ方法を採った
場合、デバグ終丁後、被デバグプログラムを再コンパイ
ル−3”’ることなく使用できる利点がある。
フイールドは、DUから被デバグプログラムへ制御を戻
す際の命令アドレスをディレールの時点で旧PSWに設
定しておく1・段を提供し′Cおり、D Uの負担を軽
減する効果がある。さらンこ、DI命令を目的プログラ
ムの生成時にあらかじめ埋め込んだデバグ方法を採った
場合、デバグ終丁後、被デバグプログラムを再コンパイ
ル−3”’ることなく使用できる利点がある。
第1図(a) 、 (b) 、 (e)は従来のデバグ
方法を説明′する図、第2図はDI命令の形式例を示1
図、第3図は本発明によるデバグ割込み方式の処理フロ
ー図である。 1〜6.8・・・命令、 7・・・デバグ制御プログ
ラノ、の作業域、 9・・DI命令。 代理人弁理士 鈴 木 誠□、 1第1し1 第2図
方法を説明′する図、第2図はDI命令の形式例を示1
図、第3図は本発明によるデバグ割込み方式の処理フロ
ー図である。 1〜6.8・・・命令、 7・・・デバグ制御プログ
ラノ、の作業域、 9・・DI命令。 代理人弁理士 鈴 木 誠□、 1第1し1 第2図
Claims (1)
- (1) プログラムのデバグのためのデパグ割込み方
式であって、プログラムの実行中にデバグ割込みが発生
し得るデパグ状態であるか、デバグ割込みが発生しない
通常状態であるかを表示するビットを情報処理装置内の
プログラム制御可能なレジスタに保持しておき、特定の
命令コードを持つ命令が通常状態で発行されると、該命
令によるオペレーションを行わずに、該命令の直後にあ
る命令を実行し、前記特定の命令コードを持つ命令がデ
バグ状態で発行されると、デバグ割込みを発生し、該割
込みに伴ってメモリに格納される命令アドレスは該命令
のアドレスに該命令の所定のフィールドの内容を加算す
ることによって得ることを特徴とするデバグ割込み方式
。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP58029159A JPS59154553A (ja) | 1983-02-23 | 1983-02-23 | デバグ割込み方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP58029159A JPS59154553A (ja) | 1983-02-23 | 1983-02-23 | デバグ割込み方式 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS59154553A true JPS59154553A (ja) | 1984-09-03 |
JPH0148564B2 JPH0148564B2 (ja) | 1989-10-19 |
Family
ID=12268478
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP58029159A Granted JPS59154553A (ja) | 1983-02-23 | 1983-02-23 | デバグ割込み方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS59154553A (ja) |
-
1983
- 1983-02-23 JP JP58029159A patent/JPS59154553A/ja active Granted
Also Published As
Publication number | Publication date |
---|---|
JPH0148564B2 (ja) | 1989-10-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0537309B1 (en) | System and method for preserving source instruction atomicity in translated program code | |
EP0290942B1 (en) | Guest machine execution control system for virtual machine system | |
US6347368B1 (en) | Microcomputing device for exchanging data while executing an application | |
JP4243463B2 (ja) | 命令スケジューリングのシミュレーション方法とシミュレーションシステム | |
JPH1031595A (ja) | シミュレーション装置及びシミュレーション方法 | |
JPS59154553A (ja) | デバグ割込み方式 | |
US20030084272A1 (en) | Handling problematic events in a data processing apparatus | |
JPH1011315A (ja) | インサーキットエミュレータ装置およびインサーキットエミュレーション方法 | |
JPS60124746A (ja) | デ−タ処理装置 | |
JPH08161185A (ja) | 仮想計算機システムのゲスト実行制御方式 | |
JP2507789B2 (ja) | 仮想計算機の論理シミュレ―ション処理方式 | |
JP2793396B2 (ja) | 電子計算機の演算ステータス保持装置 | |
JP2002073370A (ja) | デバッグ支援装置およびその装置によるデバッグ方法 | |
JPH08320813A (ja) | プログラムシミュレータ装置及びプログラムデバッグ方法 | |
JPH02231634A (ja) | ソフトウェア互換性維持方法 | |
JPS59103158A (ja) | デイジタル信号処理プログラムデバツグ方式 | |
JPS6012656B2 (ja) | リトライ制御方式 | |
JPS621041A (ja) | 情報処理装置の診断回路 | |
JPH04358232A (ja) | 情報処理装置の機能試験方法 | |
JPH04324525A (ja) | プログラム移植支援装置 | |
JPS6231434A (ja) | 命令アドレス制御方式 | |
JPH0772874B2 (ja) | 割込み受取り装置 | |
JPH0519745B2 (ja) | ||
JPS63310040A (ja) | デ−タ採取方式 | |
JP2002014844A (ja) | デバッグ方法及び記録媒体 |