JPH01184551A - プログラムのデバッギング方式 - Google Patents
プログラムのデバッギング方式Info
- Publication number
- JPH01184551A JPH01184551A JP63008649A JP864988A JPH01184551A JP H01184551 A JPH01184551 A JP H01184551A JP 63008649 A JP63008649 A JP 63008649A JP 864988 A JP864988 A JP 864988A JP H01184551 A JPH01184551 A JP H01184551A
- Authority
- JP
- Japan
- Prior art keywords
- data
- register
- program
- address
- instruction
- 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
Landscapes
- Debugging And Monitoring (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
この発明はマイクロプロセッサ等におけるプログラムの
デバッギング方式に関する。
デバッギング方式に関する。
一般に電子計算機におけるプログラムの品質不良により
記憶装置内のデータワーキングエリアのデータが破壊さ
れることがある。このようなプログラムの不良箇所を特
定するために従来では、基本単位毎のマイクロプログラ
ムを起動させて、その実行時に参照のために読み出され
る所定のデータが、該マイクロプログラムの実行前と後
において一致しているかどうかを調べて、プログラムの
良不良を判定している。
記憶装置内のデータワーキングエリアのデータが破壊さ
れることがある。このようなプログラムの不良箇所を特
定するために従来では、基本単位毎のマイクロプログラ
ムを起動させて、その実行時に参照のために読み出され
る所定のデータが、該マイクロプログラムの実行前と後
において一致しているかどうかを調べて、プログラムの
良不良を判定している。
従来この種の装置として第3図に示すものがあった0図
において、1はコンソール、Pはマイクロプロセッサが
行う一連の処理の軌跡、2は制御演算を行うマイクロプ
ロセッサ、3はマイクロプロセッサ2のメモリ、4はn
番地に置かれている命令であって、opコードおよびO
pランドで構成されているデバッグされるマイクロプロ
グラム、5はfi+1番地に置かれているインタラプト
命令で、これを実行すると、マイクロプロセッサ2内部
でインタラプトが発生し、メモリ上のあらかじめ決めら
れている番地へ強制的にジャンプさすものである。6は
デバッグモニターであって、メモリ3の内容、マイクロ
プロセッサ2の内容をコンソール1へ報告又は、コンソ
ールよりメモリ3へ表示し、若しくはマイクロプロセッ
サ2の内容を書き変えができるもので、ソフトウェアイ
ンタラプト命令5実行後ここへマイクロプロセッサ2の
実行が移されるものである。7はデータの操作エリアで
読み書きが可能である。
において、1はコンソール、Pはマイクロプロセッサが
行う一連の処理の軌跡、2は制御演算を行うマイクロプ
ロセッサ、3はマイクロプロセッサ2のメモリ、4はn
番地に置かれている命令であって、opコードおよびO
pランドで構成されているデバッグされるマイクロプロ
グラム、5はfi+1番地に置かれているインタラプト
命令で、これを実行すると、マイクロプロセッサ2内部
でインタラプトが発生し、メモリ上のあらかじめ決めら
れている番地へ強制的にジャンプさすものである。6は
デバッグモニターであって、メモリ3の内容、マイクロ
プロセッサ2の内容をコンソール1へ報告又は、コンソ
ールよりメモリ3へ表示し、若しくはマイクロプロセッ
サ2の内容を書き変えができるもので、ソフトウェアイ
ンタラプト命令5実行後ここへマイクロプロセッサ2の
実行が移されるものである。7はデータの操作エリアで
読み書きが可能である。
次に動作について説明する。まずコンソールlからメモ
リ3のfi+1番地にインタラプト命令5 。
リ3のfi+1番地にインタラプト命令5 。
をキー人力して書込む。その後、マイクロプロセッサ2
を観測される命令4から動作開始する様コンソールlよ
り指示を行う。するとマイクロプロセッサ2は、命令4
のopコードをフェッチ解析し、これに従いopランド
部のデータ参照アドレスの指定に基づいたデータワーキ
ングエリア7の特定の番地に置かれているデータを利用
することが可能である。n番地の命令4を実行すること
によりデータワーキングエリア7が破壊されるかどうか
を観測する。n番地命令4実行後、(n+1番地のイン
タラプト命令が実行されて、予め定めた番地の)デバッ
グモニタープログラム6ヘマイクロプロセツサ2を強制
的にその制御を移行させる。
を観測される命令4から動作開始する様コンソールlよ
り指示を行う。するとマイクロプロセッサ2は、命令4
のopコードをフェッチ解析し、これに従いopランド
部のデータ参照アドレスの指定に基づいたデータワーキ
ングエリア7の特定の番地に置かれているデータを利用
することが可能である。n番地の命令4を実行すること
によりデータワーキングエリア7が破壊されるかどうか
を観測する。n番地命令4実行後、(n+1番地のイン
タラプト命令が実行されて、予め定めた番地の)デバッ
グモニタープログラム6ヘマイクロプロセツサ2を強制
的にその制御を移行させる。
n番地命令4が、データワーキングエリア7で引き起し
たかもしれない不意なデータ破壊状況を、デバッグモニ
タープログラム6の指示に基づいて、データワーキング
エリア7のダウンプリスト及びマイクロプロセッサ2の
各種レジスタリストをコンソールlへ報告することで、
データ破壊箇所の追求が一命令づつ検証される。
たかもしれない不意なデータ破壊状況を、デバッグモニ
タープログラム6の指示に基づいて、データワーキング
エリア7のダウンプリスト及びマイクロプロセッサ2の
各種レジスタリストをコンソールlへ報告することで、
データ破壊箇所の追求が一命令づつ検証される。
従来のマイクロプロセッサ装置は以上の様に構成されて
いるので、巨大なプログラムの場合どこのどの命令によ
り、ワーキングエリアのデータが不意に破壊されている
かを発見するには、巨大なプログラムの全ての命令を一
つづつ実行し、そのたび、ワーキングエリアの所定のデ
ータを調べて確認しなければならないため、この種のデ
バッグ方法には、多大な労力と時間が必要であるなどの
問題点があった。
いるので、巨大なプログラムの場合どこのどの命令によ
り、ワーキングエリアのデータが不意に破壊されている
かを発見するには、巨大なプログラムの全ての命令を一
つづつ実行し、そのたび、ワーキングエリアの所定のデ
ータを調べて確認しなければならないため、この種のデ
バッグ方法には、多大な労力と時間が必要であるなどの
問題点があった。
この発明は、上記の様な問題点を解消するためになされ
たもので、不良箇所がプログラムのどこの部分、若しく
はどのマイクロ命令かを瞬時に検索し、得た情報をモニ
ター等外界へ報告し、マイクロプロセッサのプログラム
開発、評価および試験環境の一層の向上を計ることが可
能なデバッグ方式を得ることを目的としている。
たもので、不良箇所がプログラムのどこの部分、若しく
はどのマイクロ命令かを瞬時に検索し、得た情報をモニ
ター等外界へ報告し、マイクロプロセッサのプログラム
開発、評価および試験環境の一層の向上を計ることが可
能なデバッグ方式を得ることを目的としている。
(課題を解決するための手段〕
この発明においては、メモリ3上から所定番地のデータ
22をプロセッサ2の旧レジスタエリア24.25に移
し、プロセッサ2上で複数の単位プログラムからなるデ
バッグ対象のプログラムを実行させて、単位プログラム
が処理のため所定番地21のデータ22を参照したら、
該単位プログラム処理後の該当データを新レジスタエリ
ア27に移し、旧レジスタエリア25からのデータ22
と新レジスタエリア27からのデータとを比較器28で
比較し、この比較結果に基づきインタラプト制御器29
によりプログラムの実行を中止させ、単位プログラムを
入出力装置1に出力する。
22をプロセッサ2の旧レジスタエリア24.25に移
し、プロセッサ2上で複数の単位プログラムからなるデ
バッグ対象のプログラムを実行させて、単位プログラム
が処理のため所定番地21のデータ22を参照したら、
該単位プログラム処理後の該当データを新レジスタエリ
ア27に移し、旧レジスタエリア25からのデータ22
と新レジスタエリア27からのデータとを比較器28で
比較し、この比較結果に基づきインタラプト制御器29
によりプログラムの実行を中止させ、単位プログラムを
入出力装置1に出力する。
プログラムに不良箇所の単位プログラムがあれば、所定
番地21のデータ22が破壊され書き変えられることに
なる。単位プログラム処理後のデータと元のデータ22
とを比較して、異常があれば比較器28により検出する
。そしてインタラプト制御器29の出力により入出力装
置のコンソールl上に不良の単位プログラムを表示して
不良箇所を限定する。これにより復旧が即ちに行なわれ
る。
番地21のデータ22が破壊され書き変えられることに
なる。単位プログラム処理後のデータと元のデータ22
とを比較して、異常があれば比較器28により検出する
。そしてインタラプト制御器29の出力により入出力装
置のコンソールl上に不良の単位プログラムを表示して
不良箇所を限定する。これにより復旧が即ちに行なわれ
る。
以下、この発明の一実施例を図面を参照して説明する。
第1図において、1は入出力装置のコンソール、2はマ
イクロプロセッサ、3は主記憶装置のメモリである。メ
モリ3内にはデバッグモニタープログラム6、データワ
ーキングエリア7及びアドレスエリア21が設けられて
いる。
イクロプロセッサ、3は主記憶装置のメモリである。メ
モリ3内にはデバッグモニタープログラム6、データワ
ーキングエリア7及びアドレスエリア21が設けられて
いる。
アドレスエリア2工にはモニターされる番地の値が格納
される。この値はデータワーキングエリア7の特定番地
、例えば16進数のX″FEED”である、デバッグモ
ニタープログラム6はメモリ3の内容やプログラムの各
命令をコンソールlへ報告し表示させたり、逆にコンソ
ール1よりメモリ3やマイクロプロセッサ2にデータや
命令をキー人力するものである。
される。この値はデータワーキングエリア7の特定番地
、例えば16進数のX″FEED”である、デバッグモ
ニタープログラム6はメモリ3の内容やプログラムの各
命令をコンソールlへ報告し表示させたり、逆にコンソ
ール1よりメモリ3やマイクロプロセッサ2にデータや
命令をキー人力するものである。
マイクロプロセッサ2内には以下の各種レジスタ23〜
27が設けられている。23はマイクロプロセッサ2の
プログラムステータスワード(PSW)でフラグレジス
タ、24はデバッグアドレスレジスタで、アドレス用の
旧レジスタでモニターされるデータのアドレス例えばX
”FEED”を格納する。25はオールド旧レジスタで
、プログラム実行前のアドレスX“FEED”上のデー
タ値′″CAFE″22を格納する。26はアドレスレ
ジスタで、アドレス用の新レジスタで現在マイクロプロ
セッサ2がメモリ3を利用している時のアドレスを格納
する。27は二ニー(新)データレジスタで、プログラ
ム実行後のアドレスX″FEED”上のデータ、場合に
よっては書き変えられた、若しくは同一のデータ値“C
AFE”22を格納する。28は比較器で各レジスタ2
3〜27の内容が与えられて論理成立を決めるロジック
回路で構成される。29はインタラプト制御器で比較器
28の出力で起動され、インタラプトが発生しプログラ
ムはデバッグモニタープログラム6ヘジヤンプするよう
になっている。
27が設けられている。23はマイクロプロセッサ2の
プログラムステータスワード(PSW)でフラグレジス
タ、24はデバッグアドレスレジスタで、アドレス用の
旧レジスタでモニターされるデータのアドレス例えばX
”FEED”を格納する。25はオールド旧レジスタで
、プログラム実行前のアドレスX“FEED”上のデー
タ値′″CAFE″22を格納する。26はアドレスレ
ジスタで、アドレス用の新レジスタで現在マイクロプロ
セッサ2がメモリ3を利用している時のアドレスを格納
する。27は二ニー(新)データレジスタで、プログラ
ム実行後のアドレスX″FEED”上のデータ、場合に
よっては書き変えられた、若しくは同一のデータ値“C
AFE”22を格納する。28は比較器で各レジスタ2
3〜27の内容が与えられて論理成立を決めるロジック
回路で構成される。29はインタラプト制御器で比較器
28の出力で起動され、インタラプトが発生しプログラ
ムはデバッグモニタープログラム6ヘジヤンプするよう
になっている。
又マイクロプロセッサ2には実行されるデバッグ対象の
プログラムのステップ毎の命令や処理の途中結果をその
都度格納するワーキングレジスタ30を備えている。
プログラムのステップ毎の命令や処理の途中結果をその
都度格納するワーキングレジスタ30を備えている。
次に動作について説明する。
まずコンソール1を操作して、メモリ3上のアドレスエ
リア21に、ワーキングエリア7中の例えばアドレスX
“FEED”を書き込み、マイクロプロセッサ2にはデ
バッグモード移行を指示する。すると、マイクロプロセ
ッサ2はフラグレジスタ23にデバッグモードを示すフ
ラグlを立て、メモリ3上のアドレスエリアに格納され
ているFEED”をデバッグアドレスレジスタ24へ転
記し、メモリ3からFEED番地のデータCAFE22
をオールドデータレジスタ25へ転記する。これが済め
ば、あとは通常の運転と同様に、コンソールからの指令
により任意の番地よりデバッグされるプログラムを走ら
せる。
リア21に、ワーキングエリア7中の例えばアドレスX
“FEED”を書き込み、マイクロプロセッサ2にはデ
バッグモード移行を指示する。すると、マイクロプロセ
ッサ2はフラグレジスタ23にデバッグモードを示すフ
ラグlを立て、メモリ3上のアドレスエリアに格納され
ているFEED”をデバッグアドレスレジスタ24へ転
記し、メモリ3からFEED番地のデータCAFE22
をオールドデータレジスタ25へ転記する。これが済め
ば、あとは通常の運転と同様に、コンソールからの指令
により任意の番地よりデバッグされるプログラムを走ら
せる。
デバッグ対象のプログラムを構成する各ステップの命令
やマイクロ(単位)プログラムがマイクロプロセッサ2
上で実行される。そしてそれらのうちの命令にはメモリ
3上のアドレス“FEED″にあるデータ′″CAFE
″を参照するものがあり、その実行の前・後にデータ″
CAFE″が破壊されたかどうかを、データ“CAFE
″を比較器28でモニターすることにより各命令プログ
ラムの良、不良を判断する。
やマイクロ(単位)プログラムがマイクロプロセッサ2
上で実行される。そしてそれらのうちの命令にはメモリ
3上のアドレス“FEED″にあるデータ′″CAFE
″を参照するものがあり、その実行の前・後にデータ″
CAFE″が破壊されたかどうかを、データ“CAFE
″を比較器28でモニターすることにより各命令プログ
ラムの良、不良を判断する。
金板りに、アドレスX“FEED″のデータ“CAFE
”22を破壊して書変えている命令に出くわした場合、
アドレスレジスタ26とデバッグアドレスレジスタ24
とは、それぞれ内容が同一であるから論理が成立し、ま
た、この命令実行前のデータを格納しているオールドデ
ータレジスタ25と、この命令実行後のデータを格納す
るニエーデータレジスタ27とは、それぞれ内容が異な
るから、論理が成立し、また、PSW23がデバッグモ
ード実行中であることを知らせているため、比較器28
中のランダムロジックにより、インタラプト制御器29
へ異常発生の報告が上がる。
”22を破壊して書変えている命令に出くわした場合、
アドレスレジスタ26とデバッグアドレスレジスタ24
とは、それぞれ内容が同一であるから論理が成立し、ま
た、この命令実行前のデータを格納しているオールドデ
ータレジスタ25と、この命令実行後のデータを格納す
るニエーデータレジスタ27とは、それぞれ内容が異な
るから、論理が成立し、また、PSW23がデバッグモ
ード実行中であることを知らせているため、比較器28
中のランダムロジックにより、インタラプト制御器29
へ異常発生の報告が上がる。
インクラブド要求されたマイクロプロセッサ2はデバッ
グモニタ6ヘジヤンプしマイクロプロセッサ2内部の各
レジスタ23〜30の内容をコンソールlへ報告するこ
とにより、特に実行中の不良ステップ命令、その途中結
果等がワーキングレジスタ30に記録されており、その
内容をコンソールl上で見ることができる。かくして“
良”とされたステップの命令はどんどん実行消化され、
“不良”命令のみが検出されて、コンソール1に表示さ
れていくことになる。
グモニタ6ヘジヤンプしマイクロプロセッサ2内部の各
レジスタ23〜30の内容をコンソールlへ報告するこ
とにより、特に実行中の不良ステップ命令、その途中結
果等がワーキングレジスタ30に記録されており、その
内容をコンソールl上で見ることができる。かくして“
良”とされたステップの命令はどんどん実行消化され、
“不良”命令のみが検出されて、コンソール1に表示さ
れていくことになる。
なお、上記の実施例はハードウェア中心の実現方法であ
ったが第2図の様に一部機能をソフトウェアに担当させ
、ハードウェアの機能を筒略化できる。
ったが第2図の様に一部機能をソフトウェアに担当させ
、ハードウェアの機能を筒略化できる。
マイクロプロセッサにはデバッグモードだけ意味を持つ
コード、例えばX“FEED’″をデータとしてフェッ
チした場合、データレジスタ31に格納され、PSW、
23内の処理後のデータとの比較によりマイクロプロセ
ッサにインタラプトを要求し、デバッグモニタープログ
ラム6からコンソール1に対して報告が可能で上記実施
例と同様の効果を奏する。
コード、例えばX“FEED’″をデータとしてフェッ
チした場合、データレジスタ31に格納され、PSW、
23内の処理後のデータとの比較によりマイクロプロセ
ッサにインタラプトを要求し、デバッグモニタープログ
ラム6からコンソール1に対して報告が可能で上記実施
例と同様の効果を奏する。
以上説明してきたように、この発明によれば、メモリ上
から所定番地のデータをプロセッサの旧レジスタエリア
に移し、プロセッサ上で複数の単位プログラムからなる
デバッグ対象のプログラムを実行させて、単位プログラ
ムが処理のため所定番地のデータを参照したら、該単位
プログラム処理後の該当データを新レジスタエリアに移
し、旧レジスタエリアからのデータと新レジスタエリア
からのデータとを比較器で比較し、この比較結果に基づ
きインクラット制御器によりプログラムの実行を中止さ
せ、単位プログラムを入出力装置に出力するようにして
、不良箇所の単位プログラムを限定できるようになった
。これにより、プログラム品質不良が引起すデータワー
キングエリア破壊原因を瞬時に検索でき今までのデバッ
グを著しく向上せしむる効果がある。
から所定番地のデータをプロセッサの旧レジスタエリア
に移し、プロセッサ上で複数の単位プログラムからなる
デバッグ対象のプログラムを実行させて、単位プログラ
ムが処理のため所定番地のデータを参照したら、該単位
プログラム処理後の該当データを新レジスタエリアに移
し、旧レジスタエリアからのデータと新レジスタエリア
からのデータとを比較器で比較し、この比較結果に基づ
きインクラット制御器によりプログラムの実行を中止さ
せ、単位プログラムを入出力装置に出力するようにして
、不良箇所の単位プログラムを限定できるようになった
。これにより、プログラム品質不良が引起すデータワー
キングエリア破壊原因を瞬時に検索でき今までのデバッ
グを著しく向上せしむる効果がある。
第1図は本発明のプログラムのデバッギング方式が適用
されるマイクロプロセッサの一例のレジスタ構成図、第
2図は本発明の他の例のマイクロプロセッサの構成図、
第3図は従来のデバッギング方式のメモリ構成図である
。 l・・・コンソール、2・・・マイクロプロセッサ、3
・・・メモリ、7・・・ワーキングエリア、21・・・
アドレスエリア、23・・・フラグレジスタ、24.2
5・・・旧レジスタ、26゜27・・・新レジスタ、2
8・・・比較器、29・・・インクラブド制御器、30
・・・ワーキングレジスタ。 代理人 大 岩 増 m<ほか2名)1色1図
本、t’gl、nマイクロッ・口ぜ・ソT第2回
されるマイクロプロセッサの一例のレジスタ構成図、第
2図は本発明の他の例のマイクロプロセッサの構成図、
第3図は従来のデバッギング方式のメモリ構成図である
。 l・・・コンソール、2・・・マイクロプロセッサ、3
・・・メモリ、7・・・ワーキングエリア、21・・・
アドレスエリア、23・・・フラグレジスタ、24.2
5・・・旧レジスタ、26゜27・・・新レジスタ、2
8・・・比較器、29・・・インクラブド制御器、30
・・・ワーキングレジスタ。 代理人 大 岩 増 m<ほか2名)1色1図
本、t’gl、nマイクロッ・口ぜ・ソT第2回
Claims (1)
- メモリ上から所定番地のデータをプロセッサの旧レジス
タエリアに移し、前記プロセッサ上で複数の単位プログ
ラムからなるデバッグ対象のプログラムを実行させて、
前記単位プログラムが処理のため前記所定番地のデータ
を参照したら、該単位プログラム処理後の該当データを
新レジスタエリアに移し、前記旧レジスタエリアからの
データと前記新レジスタエリアからのデータとを比較器
で比較し、この比較結果に基づきインタラプト制御器に
より前記プログラムの実行を中止させ、前記単位プログ
ラムを入出力装置に出力するようにしたプログラムのデ
バッギング方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP63008649A JPH01184551A (ja) | 1988-01-19 | 1988-01-19 | プログラムのデバッギング方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP63008649A JPH01184551A (ja) | 1988-01-19 | 1988-01-19 | プログラムのデバッギング方式 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH01184551A true JPH01184551A (ja) | 1989-07-24 |
Family
ID=11698790
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP63008649A Pending JPH01184551A (ja) | 1988-01-19 | 1988-01-19 | プログラムのデバッギング方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH01184551A (ja) |
-
1988
- 1988-01-19 JP JP63008649A patent/JPH01184551A/ja active Pending
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TWI361978B (en) | Method for debugging a computer system | |
| EP0111952A2 (en) | Verification of a processor architecture having a partial instruction set | |
| US20190361786A1 (en) | Semiconductor device and debug method | |
| US5280626A (en) | Multi-process emulator suitable for testing software under multi-process environments | |
| US8612720B2 (en) | System and method for implementing data breakpoints | |
| US12596632B2 (en) | Method for testing a computer program | |
| JPH02294739A (ja) | 障害検出方式 | |
| US6141635A (en) | Method of diagnosing faults in an emulated computer system via a heterogeneous diagnostic program | |
| JP2009223714A (ja) | 演算回路及び演算回路の異常解析方法 | |
| US20240311276A1 (en) | Method for testing a computer program | |
| US20240419579A1 (en) | Method for testing a computer program | |
| JP3315266B2 (ja) | 自己診断状況表示方式 | |
| JP2684966B2 (ja) | 入出力処理装置のデバッグ装置 | |
| JP2550686B2 (ja) | 情報処理装置 | |
| JP2002116926A (ja) | プログラム処理装置およびプログラム処理方法 | |
| JPH03294934A (ja) | 高級プログラム言語用デバッガ | |
| KR20250003334A (ko) | 컴퓨터 프로그램을 테스트하기 위한 방법 | |
| JP2967741B2 (ja) | Cpu互換性テスト装置 | |
| JPH0830485A (ja) | デバッグ装置 | |
| JPH01145740A (ja) | マルチプロセス用エミユレータ | |
| JPS6146535A (ja) | 擬似エラ−設定制御方式 | |
| JPH07248935A (ja) | 情報処理装置の試験方法,及び試験装置 | |
| JPS6091458A (ja) | マイクロプロセツサのプログラムデバツグ装置 | |
| JPH10320232A (ja) | マイクロプログラムデバッグ装置 | |
| JPH04307636A (ja) | プログラムテスト方式 |