JPH0944374A - プログラム・デバッグ装置 - Google Patents
プログラム・デバッグ装置Info
- Publication number
- JPH0944374A JPH0944374A JP7212411A JP21241195A JPH0944374A JP H0944374 A JPH0944374 A JP H0944374A JP 7212411 A JP7212411 A JP 7212411A JP 21241195 A JP21241195 A JP 21241195A JP H0944374 A JPH0944374 A JP H0944374A
- Authority
- JP
- Japan
- Prior art keywords
- break
- execution
- program
- register
- condition
- 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
Landscapes
- Advance Control (AREA)
- Debugging And Monitoring (AREA)
Abstract
(57)【要約】
【課題】 実行前ブレークと実行後ブレークとを混在さ
せたり動的に切り替えたりすることを可能とし、処理効
率を向上させることのできるプログラム・デバッグ装置
を提供する。 【解決手段】 実行前ブレークのビット12と実行後ブ
レークのビット13とを付加したプリフェッチ・バッフ
ァ11を内在するCPU10と、所定のイベントを検出
してブレーク信号を出力するイベント検出器20と、C
PU10の出力を記憶するメモリ30とを備え、前記イ
ベント検出器20が、実行前ブレークと実行後ブレーク
のいずれを行うかを設定するブレーク情報を記憶する第
1のレジスタ21と、前記CPU10からメモリ30へ
のアクセス内容を記憶する第2のレジスタ22と、前記
第1のレジスタの記憶内容と第2のレジスタの記憶内容
とを比較して一致した場合にブレーク信号を出力する比
較器23とを備える。
せたり動的に切り替えたりすることを可能とし、処理効
率を向上させることのできるプログラム・デバッグ装置
を提供する。 【解決手段】 実行前ブレークのビット12と実行後ブ
レークのビット13とを付加したプリフェッチ・バッフ
ァ11を内在するCPU10と、所定のイベントを検出
してブレーク信号を出力するイベント検出器20と、C
PU10の出力を記憶するメモリ30とを備え、前記イ
ベント検出器20が、実行前ブレークと実行後ブレーク
のいずれを行うかを設定するブレーク情報を記憶する第
1のレジスタ21と、前記CPU10からメモリ30へ
のアクセス内容を記憶する第2のレジスタ22と、前記
第1のレジスタの記憶内容と第2のレジスタの記憶内容
とを比較して一致した場合にブレーク信号を出力する比
較器23とを備える。
Description
【0001】
【産業上の利用分野】本発明は、コンピュータプログラ
ムのデバッグを行うプログラム・デバッグ装置に関し、
特に所定のイベントの実行前及び実行後に任意にプログ
ラムの実行を停止させるブレーク機能を設けたプログラ
ム・デバッグ装置に関する。
ムのデバッグを行うプログラム・デバッグ装置に関し、
特に所定のイベントの実行前及び実行後に任意にプログ
ラムの実行を停止させるブレーク機能を設けたプログラ
ム・デバッグ装置に関する。
【0002】
【従来の技術】コンピュータプログラムのエラーを発見
し取り除くため、プログラムのデバッグが行われる。こ
のプログラムのデバッグを行うには、動作中のプログラ
ムを所定の条件で停止させるプログラム・デバッグ装置
が用いられる。
し取り除くため、プログラムのデバッグが行われる。こ
のプログラムのデバッグを行うには、動作中のプログラ
ムを所定の条件で停止させるプログラム・デバッグ装置
が用いられる。
【0003】従来、この種のプログラム・デバッグ装置
は、プログラムの所定のイベントを実行する直前に該プ
ログラムの動作を停止する実行前ブレークと、所定のイ
ベントを実行した直後に該プログラムの動作を停止する
実行後ブレークとを設定することができる。
は、プログラムの所定のイベントを実行する直前に該プ
ログラムの動作を停止する実行前ブレークと、所定のイ
ベントを実行した直後に該プログラムの動作を停止する
実行後ブレークとを設定することができる。
【0004】図6に従来のプログラム・デバッグ装置の
構成例を示す。図示のように、従来のプログラム・デバ
ッグ装置は、実行前ブレークのビット62を付加したプ
リフェッチ・バッファ61を内在するCPU60と、プ
ログラムを停止させる条件として設定されたイベントを
検出してブレーク信号を出力するイベント検出器70と
を備える。イベント検出器70は、プログラムを停止す
る条件であるイベントのアドレス条件、ステータス条件
及びデータ条件を記憶するレジスタ71と、CPU60
がメモリ80にアクセスするためのアドレス・バス9
1、ステータス92及びデータ・バス93の内容をCP
U60から供給されるバスストローブ信号に応答して記
憶するレジスタ72と、レジスタ71の記憶内容とレジ
スタ72の記憶内容とを比較して一致した場合にブレー
ク信号を出力する比較器73とを備える。
構成例を示す。図示のように、従来のプログラム・デバ
ッグ装置は、実行前ブレークのビット62を付加したプ
リフェッチ・バッファ61を内在するCPU60と、プ
ログラムを停止させる条件として設定されたイベントを
検出してブレーク信号を出力するイベント検出器70と
を備える。イベント検出器70は、プログラムを停止す
る条件であるイベントのアドレス条件、ステータス条件
及びデータ条件を記憶するレジスタ71と、CPU60
がメモリ80にアクセスするためのアドレス・バス9
1、ステータス92及びデータ・バス93の内容をCP
U60から供給されるバスストローブ信号に応答して記
憶するレジスタ72と、レジスタ71の記憶内容とレジ
スタ72の記憶内容とを比較して一致した場合にブレー
ク信号を出力する比較器73とを備える。
【0005】次に、図7ないし図9のフローチャートを
参照して、上記従来のプログラム・デバッグ装置の動作
を説明する。まず、ブレーク条件とするイベントのアド
レス条件、ステータス条件及びデータ条件を、あらかじ
めレジスタ71に記憶させておく。そして、当該ブレー
ク条件であるイベントを実行する前にブレークするの
か、または実行した後にブレークするのかを選択する。
参照して、上記従来のプログラム・デバッグ装置の動作
を説明する。まず、ブレーク条件とするイベントのアド
レス条件、ステータス条件及びデータ条件を、あらかじ
めレジスタ71に記憶させておく。そして、当該ブレー
ク条件であるイベントを実行する前にブレークするの
か、または実行した後にブレークするのかを選択する。
【0006】図7は、プログラムを停止するタイミング
として実行前ブレークを選択した場合において、ブレー
ク条件となるイベントを実行する命令フェッチをプリフ
ェッチ・バッファ61に格納する処理の流れを示すフロ
ーチャートである。実行前ブレークを選択した場合にお
いて、命令フェッチがプリフェッチ・バッファ61に格
納されるタイミングで、イベント検出器70内のレジス
タ71にあらかじめ設定されているアドレス条件と命令
フェッチのアドレスとを比較する(ステップ701)。
レジスタ71のアドレス条件と命令フェッチのアドレス
とが一致する場合、プリフェッチ・バッファ61の実行
前ブレークのビット62を有効にして命令フェッチをプ
リフェッチ・バッファ61に格納する(ステップ70
2)。一方、レジスタ71のアドレス条件と命令フェッ
チのアドレスとが一致しない場合は、実行前ブレークの
ビット62を有効とせずに命令フェッチをプリフェッチ
バッファ61に格納する(ステップ703)。
として実行前ブレークを選択した場合において、ブレー
ク条件となるイベントを実行する命令フェッチをプリフ
ェッチ・バッファ61に格納する処理の流れを示すフロ
ーチャートである。実行前ブレークを選択した場合にお
いて、命令フェッチがプリフェッチ・バッファ61に格
納されるタイミングで、イベント検出器70内のレジス
タ71にあらかじめ設定されているアドレス条件と命令
フェッチのアドレスとを比較する(ステップ701)。
レジスタ71のアドレス条件と命令フェッチのアドレス
とが一致する場合、プリフェッチ・バッファ61の実行
前ブレークのビット62を有効にして命令フェッチをプ
リフェッチ・バッファ61に格納する(ステップ70
2)。一方、レジスタ71のアドレス条件と命令フェッ
チのアドレスとが一致しない場合は、実行前ブレークの
ビット62を有効とせずに命令フェッチをプリフェッチ
バッファ61に格納する(ステップ703)。
【0007】図8は、ブレーク条件である命令フェッチ
が実行される直前の処理の流れを示すフローチャートで
ある。CPU60は、プリフェッチ・バッファ61に格
納した命令フェッチを実行する直前に、当該命令フェッ
チに対応する実行前ブレークのビット62が有効となっ
ているかどうか調べる(ステップ801)。当該実行前
ブレークのビット62が有効である場合は、イベント検
出器70のレジスタ71にあらかじめ設定されているブ
レーク条件とレジスタ72の内容とを比較器73で比較
する(ステップ802)。レジスタ71のブレーク条件
とレジスタ72の内容とが一致する時は、比較器73が
ブレーク信号を出力してプログラムを停止させる(ステ
ップ803)。レジスタ71のブレーク条件とレジスタ
72の内容とが一致しない時は、プログラムを停止させ
ずに、当該命令フェッチを実行する(ステップ80
2)。また、実行前ブレークのビット62が有効でない
場合もプログラムを停止させずに当該命令フェッチを実
行する(ステップ801)。
が実行される直前の処理の流れを示すフローチャートで
ある。CPU60は、プリフェッチ・バッファ61に格
納した命令フェッチを実行する直前に、当該命令フェッ
チに対応する実行前ブレークのビット62が有効となっ
ているかどうか調べる(ステップ801)。当該実行前
ブレークのビット62が有効である場合は、イベント検
出器70のレジスタ71にあらかじめ設定されているブ
レーク条件とレジスタ72の内容とを比較器73で比較
する(ステップ802)。レジスタ71のブレーク条件
とレジスタ72の内容とが一致する時は、比較器73が
ブレーク信号を出力してプログラムを停止させる(ステ
ップ803)。レジスタ71のブレーク条件とレジスタ
72の内容とが一致しない時は、プログラムを停止させ
ずに、当該命令フェッチを実行する(ステップ80
2)。また、実行前ブレークのビット62が有効でない
場合もプログラムを停止させずに当該命令フェッチを実
行する(ステップ801)。
【0008】図9は、プログラムを停止するタイミング
として実行前ブレークを選択した場合において、ブレー
ク条件である命令フェッチの実行時の処理の流れを示す
フローチャートである。CPU60は、命令フェッチが
実行された際に、イベント検出器70のレジスタ71に
あらかじめ設定されているブレーク条件とレジスタ72
の内容とを比較器73で比較する(ステップ901)。
レジスタ71のブレーク条件とレジスタ72の内容とが
一致する時は、比較器73がブレーク信号を出力してプ
ログラムを停止させる(ステップ902)。レジスタ7
1のブレーク条件とレジスタ72の内容とが一致しない
時は、プログラムを停止させずに、次の命令フェッチの
実行に移る(ステップ901)。
として実行前ブレークを選択した場合において、ブレー
ク条件である命令フェッチの実行時の処理の流れを示す
フローチャートである。CPU60は、命令フェッチが
実行された際に、イベント検出器70のレジスタ71に
あらかじめ設定されているブレーク条件とレジスタ72
の内容とを比較器73で比較する(ステップ901)。
レジスタ71のブレーク条件とレジスタ72の内容とが
一致する時は、比較器73がブレーク信号を出力してプ
ログラムを停止させる(ステップ902)。レジスタ7
1のブレーク条件とレジスタ72の内容とが一致しない
時は、プログラムを停止させずに、次の命令フェッチの
実行に移る(ステップ901)。
【0009】以上のような処理により、従来のプログラ
ム・デバッグ装置は、実行前ブレークと実行後ブレーク
を実現する。そして、ある処理を実行する前にプログラ
ムをブレークさせ、条件の設定を変更して再実行させた
い場合には実行前ブレークを選択する。また、ある処理
が終了した時のプログラムの状態やCPUやメモリの状
態を確認したい場合には実行後ブレークを選択する。
ム・デバッグ装置は、実行前ブレークと実行後ブレーク
を実現する。そして、ある処理を実行する前にプログラ
ムをブレークさせ、条件の設定を変更して再実行させた
い場合には実行前ブレークを選択する。また、ある処理
が終了した時のプログラムの状態やCPUやメモリの状
態を確認したい場合には実行後ブレークを選択する。
【0010】上述した従来のプログラム・デバッグ装置
は、プログラムを実行する前に、あらかじめ所定のイベ
ントの実行前にプログラムをブレークするか実行後にブ
レークするかを選択し、イベント検出器70及びCPU
60のプリフェッチ・バッファ61を設定しておかなけ
ればならない。このため、実行前ブレークか実行後ブレ
ークの混在した設定をすることができなかった。また、
目的に応じて実行前ブレークと、実行後ブレークを動的
に切替えることもできなかった。
は、プログラムを実行する前に、あらかじめ所定のイベ
ントの実行前にプログラムをブレークするか実行後にブ
レークするかを選択し、イベント検出器70及びCPU
60のプリフェッチ・バッファ61を設定しておかなけ
ればならない。このため、実行前ブレークか実行後ブレ
ークの混在した設定をすることができなかった。また、
目的に応じて実行前ブレークと、実行後ブレークを動的
に切替えることもできなかった。
【0011】したがって、実行前ブレークと実行後ブレ
ークとを共に行う必要がある場合、まず、実行前ブレー
クを行なうためのブレーク条件を設定してプログラムを
実行し、所定のタイミングでブレークさせてプログラム
をデバッグする。その後、実行後ブレークを行なうため
のブレーク条件を設定してプログラムを実行し、所定の
タイミングでブレークさせてプログラムのデバッグを行
なっていた。
ークとを共に行う必要がある場合、まず、実行前ブレー
クを行なうためのブレーク条件を設定してプログラムを
実行し、所定のタイミングでブレークさせてプログラム
をデバッグする。その後、実行後ブレークを行なうため
のブレーク条件を設定してプログラムを実行し、所定の
タイミングでブレークさせてプログラムのデバッグを行
なっていた。
【0012】
【発明が解決しようとする課題】上述したように、従来
のプログラム・デバッグ装置は、プログラムを実行する
前に、ブレークのタイミングとして実行前ブレークまた
は実行後ブレークのどちらか一方を選択しなければなら
ず、実行前ブレークと実行後ブレークの混在した設定を
することができなかった。また、実行前ブレークと実行
後ブレークとを動的に切替えることもできなかった。し
たがって、実行前ブレークと実行後ブレークとをいずれ
も行う必要がある場合、実行前ブレークを行うデバッグ
処理と実行後ブレークを行うデバッグ処理とを別個に行
わなければならず、手間がかかり効率が悪いという欠点
があった。
のプログラム・デバッグ装置は、プログラムを実行する
前に、ブレークのタイミングとして実行前ブレークまた
は実行後ブレークのどちらか一方を選択しなければなら
ず、実行前ブレークと実行後ブレークの混在した設定を
することができなかった。また、実行前ブレークと実行
後ブレークとを動的に切替えることもできなかった。し
たがって、実行前ブレークと実行後ブレークとをいずれ
も行う必要がある場合、実行前ブレークを行うデバッグ
処理と実行後ブレークを行うデバッグ処理とを別個に行
わなければならず、手間がかかり効率が悪いという欠点
があった。
【0013】本発明は、上記従来の欠点を解消し、実行
前ブレークと実行後ブレークとを混在させたり動的に切
り替えたりすることを可能とし、処理効率を向上させる
ことのできるプログラム・デバッグ装置を提供すること
を目的とする。
前ブレークと実行後ブレークとを混在させたり動的に切
り替えたりすることを可能とし、処理効率を向上させる
ことのできるプログラム・デバッグ装置を提供すること
を目的とする。
【0014】
【課題を解決するための手段】上記の目的を達成するた
め、本発明は、実行前ブレークのビットと実行後ブレー
クのビットとを付加したプリフェッチ・バッファを内在
するCPUと、プログラムを停止させる条件として設定
されたイベントを検出してブレーク信号を出力するイベ
ント検出器と、前記CPUがプログラムを実行した際に
出力するステータス、データ及びアドレスを記憶するメ
モリとを備え、前記イベント検出器が、プログラムを停
止する条件であるイベントのアドレス条件、ステータス
条件、データ条件及び実行前ブレークと実行後ブレーク
のいずれを行うかを設定するブレーク情報を記憶する第
1のレジスタと、前記CPUが前記メモリにアクセスす
るためのアドレス・バス、ステータス及びデータ・バス
の内容を所定のタイミングで記憶する第2のレジスタ
と、前記第1のレジスタの記憶内容と前記第2のレジス
タの記憶内容とを比較して一致した場合にブレーク信号
を出力する比較器とを備える構成としている。
め、本発明は、実行前ブレークのビットと実行後ブレー
クのビットとを付加したプリフェッチ・バッファを内在
するCPUと、プログラムを停止させる条件として設定
されたイベントを検出してブレーク信号を出力するイベ
ント検出器と、前記CPUがプログラムを実行した際に
出力するステータス、データ及びアドレスを記憶するメ
モリとを備え、前記イベント検出器が、プログラムを停
止する条件であるイベントのアドレス条件、ステータス
条件、データ条件及び実行前ブレークと実行後ブレーク
のいずれを行うかを設定するブレーク情報を記憶する第
1のレジスタと、前記CPUが前記メモリにアクセスす
るためのアドレス・バス、ステータス及びデータ・バス
の内容を所定のタイミングで記憶する第2のレジスタ
と、前記第1のレジスタの記憶内容と前記第2のレジス
タの記憶内容とを比較して一致した場合にブレーク信号
を出力する比較器とを備える構成としている。
【0015】また、他の態様では、前記第2のレジスタ
が、前記CPUから供給されるバスストローブ信号に応
答して前記CPUが前記メモリにアクセスするためのア
ドレス・バス、ステータス及びデータ・バスの内容を記
憶する構成としている。
が、前記CPUから供給されるバスストローブ信号に応
答して前記CPUが前記メモリにアクセスするためのア
ドレス・バス、ステータス及びデータ・バスの内容を記
憶する構成としている。
【0016】また、他の態様では、前記第1のレジスタ
が、必要に応じて、所定のイベントの実行前にプログラ
ムを停止する実行前ブレークと所定のイベントの実行後
にプログラムを停止する実行後ブレークとを混在させた
複数のブレーク情報を記憶する構成としている。
が、必要に応じて、所定のイベントの実行前にプログラ
ムを停止する実行前ブレークと所定のイベントの実行後
にプログラムを停止する実行後ブレークとを混在させた
複数のブレーク情報を記憶する構成としている。
【0017】また、他の態様では、前記第1のレジスタ
が、ブレーク情報として設定された、前記実行前ブレー
クと前記実行後ブレークとを任意にかつ動的に切り替え
る手段を備える構成としている。
が、ブレーク情報として設定された、前記実行前ブレー
クと前記実行後ブレークとを任意にかつ動的に切り替え
る手段を備える構成としている。
【0018】
【作 用】本発明によれば、CPUのプリフェッチ・バ
ッファに実行前ブレークのビットと実行後ブレークのビ
ットとを備え、ブレーク条件を記憶する第1のレジスタ
に実行前ブレークか実行後ブレークかの別を示すブレー
ク情報を記憶させるため、CPUにおいて個別的に実行
前ブレークと実行後ブレークとを認識し、所定の条件に
即してプログラムを停止させることができる。
ッファに実行前ブレークのビットと実行後ブレークのビ
ットとを備え、ブレーク条件を記憶する第1のレジスタ
に実行前ブレークか実行後ブレークかの別を示すブレー
ク情報を記憶させるため、CPUにおいて個別的に実行
前ブレークと実行後ブレークとを認識し、所定の条件に
即してプログラムを停止させることができる。
【0019】
【実施例】以下、本発明の実施例について図面を参照し
て説明する。図1は、本発明の1実施例によるプログラ
ム・デバッグ装置の構成を示すブロック図である。
て説明する。図1は、本発明の1実施例によるプログラ
ム・デバッグ装置の構成を示すブロック図である。
【0020】図示のように、本実施例のプログラム・デ
バッグ装置は、実行前ブレークのビット12と実行後ブ
レークのビット13とを付加したプリフェッチ・バッフ
ァ11を内在するCPU10と、プログラムを停止させ
る条件として設定されたイベントを検出してブレーク信
号を出力するイベント検出器20と、CPU10がプロ
グラムを実行した際に出力するステータス、データ及び
アドレスを記憶するメモリ30とを備える。
バッグ装置は、実行前ブレークのビット12と実行後ブ
レークのビット13とを付加したプリフェッチ・バッフ
ァ11を内在するCPU10と、プログラムを停止させ
る条件として設定されたイベントを検出してブレーク信
号を出力するイベント検出器20と、CPU10がプロ
グラムを実行した際に出力するステータス、データ及び
アドレスを記憶するメモリ30とを備える。
【0021】CPU10は、プログラムを実行すると共
にイベント検出器20を制御してプログラムのでバッグ
を実行する。また、アドレスバス41、ステータス4
2、データバス43を介してメモり30と接続されてい
る。各バス41、42、43は、イベント検出器20に
も接続されており、それぞれの内容をイベント検出器2
0に出力できるようになっている。また、CPU10
は、イベント検出器20に所定のタイミングでバススト
ローブ信号を供給し、各バス41、42、43の内容を
記憶するタイミングを制御する。
にイベント検出器20を制御してプログラムのでバッグ
を実行する。また、アドレスバス41、ステータス4
2、データバス43を介してメモり30と接続されてい
る。各バス41、42、43は、イベント検出器20に
も接続されており、それぞれの内容をイベント検出器2
0に出力できるようになっている。また、CPU10
は、イベント検出器20に所定のタイミングでバススト
ローブ信号を供給し、各バス41、42、43の内容を
記憶するタイミングを制御する。
【0022】イベント検出器20は、プログラムを停止
する条件であるイベントのアドレス条件、ステータス条
件、データ条件及びブレーク情報を記憶するレジスタ2
1と、CPU10がメモリ30にアクセスするためのア
ドレス・バス41、ステータス42及びデータ・バス4
3の内容をCPU10から供給されるバスストローブ信
号に応答して記憶するレジスタ22と、レジスタ21の
記憶内容とレジスタ22の記憶内容とを比較して一致し
た場合にブレーク信号を出力する比較器23とを備え
る。レジスタ21に記憶されるブレーク情報は、実行前
ブレークと実行後ブレークのいずれを行うかを設定する
ためのものである。
する条件であるイベントのアドレス条件、ステータス条
件、データ条件及びブレーク情報を記憶するレジスタ2
1と、CPU10がメモリ30にアクセスするためのア
ドレス・バス41、ステータス42及びデータ・バス4
3の内容をCPU10から供給されるバスストローブ信
号に応答して記憶するレジスタ22と、レジスタ21の
記憶内容とレジスタ22の記憶内容とを比較して一致し
た場合にブレーク信号を出力する比較器23とを備え
る。レジスタ21に記憶されるブレーク情報は、実行前
ブレークと実行後ブレークのいずれを行うかを設定する
ためのものである。
【0023】次に、本実施例の動作について図2ないし
図4のフローチャートを参照して説明する。まず、あら
かじめブレーク条件となるイベントのアドレス条件、ス
テータス条件、データ条件及び実行前ブレークまたは実
行後ブレークの別を示すブレーク情報をイベント検出器
20のレジスタ21に記憶させる。
図4のフローチャートを参照して説明する。まず、あら
かじめブレーク条件となるイベントのアドレス条件、ス
テータス条件、データ条件及び実行前ブレークまたは実
行後ブレークの別を示すブレーク情報をイベント検出器
20のレジスタ21に記憶させる。
【0024】図2は、ブレーク条件となるイベントを実
行する命令フェッチをプリフェッチ・バッファ11に格
納する際の処理の流れを示すフローチャートである。命
令フェッチがプリフェッチ・バッファ11に格納される
タイミングで、イベント検出器20のレジスタ21にあ
らかじめ設定されているアドレス条件と、命令フェッチ
のアドレスとを比較する(ステップ201)。レジスタ
21のアドレス条件と命令フェッチのアドレスとが一致
する場合、CPU10は、イベント検出器20のレジス
タ21にあらかじめ設定されているブレーク情報を参照
する。そして、実行前ブレークが設定されている場合
は、プリフェッチ・バッファ21の当該命令フェッチに
対応する実行前ブレークのビット22を有効にして当該
命令フェッチをプリフェッチ・バッファ21に格納する
(ステップ202、203)。一方、実行後ブレークが
設定されている場合は、プリフェッチ・バッファ21の
当該命令フェッチに対応する実行後ブレークのビット2
3を有効にして当該命令フェッチをプリフェッチ・バッ
ファ21に格納する(ステップ202、204)。ま
た、レジスタ21のアドレス条件と命令フェッチのアド
レスとが一致しなかった場合、実行前ブレークのビット
22及び実行後ブレークのビット23のいずれも有効と
せずに、当該命令フェッチをプリフェッチ・バッファ2
1に格納する(ステップ201、205)。
行する命令フェッチをプリフェッチ・バッファ11に格
納する際の処理の流れを示すフローチャートである。命
令フェッチがプリフェッチ・バッファ11に格納される
タイミングで、イベント検出器20のレジスタ21にあ
らかじめ設定されているアドレス条件と、命令フェッチ
のアドレスとを比較する(ステップ201)。レジスタ
21のアドレス条件と命令フェッチのアドレスとが一致
する場合、CPU10は、イベント検出器20のレジス
タ21にあらかじめ設定されているブレーク情報を参照
する。そして、実行前ブレークが設定されている場合
は、プリフェッチ・バッファ21の当該命令フェッチに
対応する実行前ブレークのビット22を有効にして当該
命令フェッチをプリフェッチ・バッファ21に格納する
(ステップ202、203)。一方、実行後ブレークが
設定されている場合は、プリフェッチ・バッファ21の
当該命令フェッチに対応する実行後ブレークのビット2
3を有効にして当該命令フェッチをプリフェッチ・バッ
ファ21に格納する(ステップ202、204)。ま
た、レジスタ21のアドレス条件と命令フェッチのアド
レスとが一致しなかった場合、実行前ブレークのビット
22及び実行後ブレークのビット23のいずれも有効と
せずに、当該命令フェッチをプリフェッチ・バッファ2
1に格納する(ステップ201、205)。
【0025】図3は、本実施例を搭載したコンピュータ
システムにおいてイベントが実行される直前の処理の流
れを示すフローチャートである。CPU60は、プリフ
ェッチ・バッファ11に格納した命令フェッチを実行す
る直前に、当該命令フェッチに対応する実行前ブレーク
のビット22が有効となっているかどうか調べる(ステ
ップ301)。当該実行前ブレークのビット22が有効
である場合は、イベント検出器20のレジスタ21にあ
らかじめ設定されているブレーク情報が実行前ブレーク
となっているかどうかを調べ、レジスタ21のブレーク
条件とレジス夕22の内容とを比較器23で比較する
(ステップ302)。ブレーク情報が実行前ブレークと
なっており、かつレジスタ21のブレーク条件とレジス
夕22の内容とが一致する時は、比較器23がブレーク
信号を出力してプログラムを停止させる(ステップ30
3)。
システムにおいてイベントが実行される直前の処理の流
れを示すフローチャートである。CPU60は、プリフ
ェッチ・バッファ11に格納した命令フェッチを実行す
る直前に、当該命令フェッチに対応する実行前ブレーク
のビット22が有効となっているかどうか調べる(ステ
ップ301)。当該実行前ブレークのビット22が有効
である場合は、イベント検出器20のレジスタ21にあ
らかじめ設定されているブレーク情報が実行前ブレーク
となっているかどうかを調べ、レジスタ21のブレーク
条件とレジス夕22の内容とを比較器23で比較する
(ステップ302)。ブレーク情報が実行前ブレークと
なっており、かつレジスタ21のブレーク条件とレジス
夕22の内容とが一致する時は、比較器23がブレーク
信号を出力してプログラムを停止させる(ステップ30
3)。
【0026】レジスタ71のブレーク条件とレジスタ7
2の内容とが一致しない時は、プログラムを停止させず
に、当該命令フェッチを実行する(ステップ302)。
また、実行前ブレークのビット62が有効でない場合も
プログラムを停止させずに当該命令フェッチを実行する
(ステップ301)。
2の内容とが一致しない時は、プログラムを停止させず
に、当該命令フェッチを実行する(ステップ302)。
また、実行前ブレークのビット62が有効でない場合も
プログラムを停止させずに当該命令フェッチを実行する
(ステップ301)。
【0027】図4は、本実施例を搭載したコンピュータ
システムにおいてイベントを実行した際の処理の流れを
示すフローチャートである。CPU60は、プリフェッ
チ・バッファ11に格納した命令フェッチを実行した
際、当該命令フェッチに対応する実行後ブレークのビッ
ト23が有効となっているかどうか調べる(ステップ4
01)。当該実行後ブレークのビット23が有効である
場合は、イベント検出器20のレジスタ21にあらかじ
め設定されているブレーク情報が実行後ブレークとなっ
ているかどうかを調べ、レジスタ21のブレーク条件と
レジス夕22の内容とを比較器23で比較する(ステッ
プ402)。ブレーク情報が実行後ブレークとなってお
り、かつレジスタ21のブレーク条件とレジス夕22の
内容とが一致する時は、比較器23がブレーク信号を出
力してプログラムを停止させる(ステップ403)。
システムにおいてイベントを実行した際の処理の流れを
示すフローチャートである。CPU60は、プリフェッ
チ・バッファ11に格納した命令フェッチを実行した
際、当該命令フェッチに対応する実行後ブレークのビッ
ト23が有効となっているかどうか調べる(ステップ4
01)。当該実行後ブレークのビット23が有効である
場合は、イベント検出器20のレジスタ21にあらかじ
め設定されているブレーク情報が実行後ブレークとなっ
ているかどうかを調べ、レジスタ21のブレーク条件と
レジス夕22の内容とを比較器23で比較する(ステッ
プ402)。ブレーク情報が実行後ブレークとなってお
り、かつレジスタ21のブレーク条件とレジス夕22の
内容とが一致する時は、比較器23がブレーク信号を出
力してプログラムを停止させる(ステップ403)。
【0028】レジスタ21のブレーク条件とレジスタ2
2の内容とが一致しない時は、プログラムを停止させず
に、次の命令フェッチの実行に移る(ステップ40
2)。また、実行前ブレークのビット62が有効でない
場合もプログラムを停止させずに、次の命令フェッチの
実行に移る(ステップ401)。
2の内容とが一致しない時は、プログラムを停止させず
に、次の命令フェッチの実行に移る(ステップ40
2)。また、実行前ブレークのビット62が有効でない
場合もプログラムを停止させずに、次の命令フェッチの
実行に移る(ステップ401)。
【0029】以上のようにして所定のイベントの実行前
ブレークと実行後ブレークとを実現する本実施例におい
て、実行前ブレークと実行後ブレークとをいずれも行っ
てプログラムのでバッグを行う場合の処理について説明
する。図5に示すように、デバッグするプログラムの各
フェーズにフェーズ番号を付し、プログラムを停止した
い位置にブレーク番号を付す。ただし図では、各フェー
ズは並んでいるが、実際のプログラム中では並んでいな
いものとする。
ブレークと実行後ブレークとを実現する本実施例におい
て、実行前ブレークと実行後ブレークとをいずれも行っ
てプログラムのでバッグを行う場合の処理について説明
する。図5に示すように、デバッグするプログラムの各
フェーズにフェーズ番号を付し、プログラムを停止した
い位置にブレーク番号を付す。ただし図では、各フェー
ズは並んでいるが、実際のプログラム中では並んでいな
いものとする。
【0030】同図において、ブレーク1は、フェーズ2
の実行前にブレークする実行前ブレークを示し、ブレー
ク2は、フェーズ2の実行後にブレークする実行後ブレ
ークを示し、ブレーク3は、フェーズ3の実行後にブレ
ークする実行後ブレークを示し、ブレーク4は、フェー
ズ5の実行前にブレークする実行前ブレークを示すもの
とする。
の実行前にブレークする実行前ブレークを示し、ブレー
ク2は、フェーズ2の実行後にブレークする実行後ブレ
ークを示し、ブレーク3は、フェーズ3の実行後にブレ
ークする実行後ブレークを示し、ブレーク4は、フェー
ズ5の実行前にブレークする実行前ブレークを示すもの
とする。
【0031】この場合、実行前ブレークを行なうブレー
ク1とブレーク4は、ブレーク条件のアドレス条件、ス
テータス条件及びデータ条件を設定し、さらにブレーク
情報に実行前ブレークを示す情報を設定して、イベント
検出器20のレジスタ21に記憶させる。また、実行後
ブレークを行なうブレーク2とブレーク3は、ブレーク
条件のアドレス条件、ステータス条件及びデータ条件を
設定し、さらにブレーク情報に実行後ブレークを示す情
報を設定して、イベント検出器20のレジスタ21に記
憶させる。
ク1とブレーク4は、ブレーク条件のアドレス条件、ス
テータス条件及びデータ条件を設定し、さらにブレーク
情報に実行前ブレークを示す情報を設定して、イベント
検出器20のレジスタ21に記憶させる。また、実行後
ブレークを行なうブレーク2とブレーク3は、ブレーク
条件のアドレス条件、ステータス条件及びデータ条件を
設定し、さらにブレーク情報に実行後ブレークを示す情
報を設定して、イベント検出器20のレジスタ21に記
憶させる。
【0032】この状態でプログラムを実行すると、まず
フェーズ2の実行直前にブレーク1のブレーク条件にし
たがってプログラムがブレークされる。次に、フェーズ
2の実行直後にブレーク2のブレーク条件にしたがって
プログラムがブレークされる。また、フェーズ3の実行
直後にブレーク3のブレーク条件にしたがってプログラ
ムがブレークされる。最後に、フェーズ5の実行直前に
ブレーク4のブレーク条件にしたがってプログラムがブ
レークされる。
フェーズ2の実行直前にブレーク1のブレーク条件にし
たがってプログラムがブレークされる。次に、フェーズ
2の実行直後にブレーク2のブレーク条件にしたがって
プログラムがブレークされる。また、フェーズ3の実行
直後にブレーク3のブレーク条件にしたがってプログラ
ムがブレークされる。最後に、フェーズ5の実行直前に
ブレーク4のブレーク条件にしたがってプログラムがブ
レークされる。
【0033】このようにして、1度の処理で実行前ブレ
ークと実行後ブレークとを混在させて設定することがで
きる。また、レジスター21に記憶させるブレーク情報
によって実行前ブレークと実行後ブレークとを識別でき
るようにしたため、実行前ブレークと実行後ブレークと
を任意に活動的に切り替えることができる。以上好まし
い実施例をあげて本発明を説明したが、本発明は必ずし
も上記実施例に限定されるものではない。
ークと実行後ブレークとを混在させて設定することがで
きる。また、レジスター21に記憶させるブレーク情報
によって実行前ブレークと実行後ブレークとを識別でき
るようにしたため、実行前ブレークと実行後ブレークと
を任意に活動的に切り替えることができる。以上好まし
い実施例をあげて本発明を説明したが、本発明は必ずし
も上記実施例に限定されるものではない。
【0034】
【発明の効果】以上説明したように、本発明によるプロ
グラム・デバッグ装置は、CPUにおいて個別的に実行
前ブレークと実行後ブレークとを認識し、所定の条件に
即してプログラムを停止させることができるため、実行
前ブレークと実行後ブレークとを混在させてプログラム
・デバッグ処理を実行することができる。したがって、
実行前ブレークと実行後ブレークとをいずれも行う必要
がある場合、実行前ブレークを行うプログラム・デバッ
グ処理と実行後ブレークを行うプログラム・デバッグ処
理とを別個に行う必要がなく手間を削減し、効率の向上
を図ることができるという効果がある。
グラム・デバッグ装置は、CPUにおいて個別的に実行
前ブレークと実行後ブレークとを認識し、所定の条件に
即してプログラムを停止させることができるため、実行
前ブレークと実行後ブレークとを混在させてプログラム
・デバッグ処理を実行することができる。したがって、
実行前ブレークと実行後ブレークとをいずれも行う必要
がある場合、実行前ブレークを行うプログラム・デバッ
グ処理と実行後ブレークを行うプログラム・デバッグ処
理とを別個に行う必要がなく手間を削減し、効率の向上
を図ることができるという効果がある。
【0035】また、CPUの実行前ブレークまたは実行
後ブレークを示すビットとイベント検出器の実行前ブレ
ークか実行後ブレークかの別を示すブレーク情報とを変
更することにより、実行前ブレークと実行後ブレークと
を任意にかつ動的に切り替えることができるため、より
多様なプログラム・デバッグの設定を行うことができる
という効果がある。
後ブレークを示すビットとイベント検出器の実行前ブレ
ークか実行後ブレークかの別を示すブレーク情報とを変
更することにより、実行前ブレークと実行後ブレークと
を任意にかつ動的に切り替えることができるため、より
多様なプログラム・デバッグの設定を行うことができる
という効果がある。
【図1】 本発明の1実施例によるプログラム・デバッ
グ装置の構成を示すブロック図である。
グ装置の構成を示すブロック図である。
【図2】 本実施例におけるプリフェッチ時の動作を示
すフローチャートである。
すフローチャートである。
【図3】 本実施例におけるイベント実行直前の動作を
示すフローチャートである。
示すフローチャートである。
【図4】 本実施例におけるイベント実行時の動作を示
すフローチャートである。
すフローチャートである。
【図5】 プログラムに複数のブレーク条件を設定した
状態を示す概念図である。
状態を示す概念図である。
【図6】 従来のプログラム・デバッグ装置の構成例を
示すブロック図である。
示すブロック図である。
【図7】 従来のプログラム・デバッグ装置のプリフェ
ッチ時の動作を示すフローチャートである。
ッチ時の動作を示すフローチャートである。
【図8】 従来のプログラム・デバッグ装置のイベント
実行直前の動作を示すフローチャートである。
実行直前の動作を示すフローチャートである。
【図9】 従来のプログラム・デバッグ装置のイベント
実行時の動作を示すフローチャートである。
実行時の動作を示すフローチャートである。
10 CPU 11 プリフェッチ・バッファ 12 実行前ブレークのビット 13 実行後ブレークのビット 20 イベント検出器 21、22 レジスタ 23 比較器 30 メモリ 41 アドレス・バス 42 ステータス 43 データ・バス
Claims (4)
- 【請求項1】 実行前ブレークのビットと実行後ブレー
クのビットとを付加したプリフェッチ・バッファを内在
するCPUと、 プログラムを停止させる条件として設定されたイベント
を検出してブレーク信号を出力するイベント検出器と、 前記CPUがプログラムを実行した際に出力するステー
タス、データ及びアドレスを記憶するメモリとを備え、 前記イベント検出器が、 プログラムを停止する条件であるイベントのアドレス条
件、ステータス条件、データ条件及び実行前ブレークと
実行後ブレークのいずれを行うかを設定するブレーク情
報を記憶する第1のレジスタと、 前記CPUが前記メモリにアクセスするためのアドレス
・バス、ステータス及びデータ・バスの内容を所定のタ
イミングで記憶する第2のレジスタと、 前記第1のレジスタの記憶内容と前記第2のレジスタの
記憶内容とを比較して一致した場合にブレーク信号を出
力する比較器とを備えることを特徴とするプログラム・
デバッグ装置。 - 【請求項2】 前記第2のレジスタが、前記CPUから
供給されるバスストローブ信号に応答して前記CPUが
前記メモリにアクセスするためのアドレス・バス、ステ
ータス及びデータ・バスの内容を記憶することを特徴と
する請求項1に記載のプログラム・デバッグ装置。 - 【請求項3】 前記第1のレジスタが、必要に応じて、
所定のイベントの実行前にプログラムを停止する実行前
ブレークと所定のイベントの実行後にプログラムを停止
する実行後ブレークとを混在させた複数のブレーク情報
を記憶することを特徴とする請求項1に記載のプログラ
ム・デバッグ装置。 - 【請求項4】 前記第1のレジスタが、ブレーク情報と
して設定された、前記実行前ブレークと前記実行後ブレ
ークとを任意にかつ動的に切り替える手段を備えること
を特徴とする請求項3に記載のプログラム・デバッグ装
置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP7212411A JP2817675B2 (ja) | 1995-07-28 | 1995-07-28 | プログラム・デバッグ装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP7212411A JP2817675B2 (ja) | 1995-07-28 | 1995-07-28 | プログラム・デバッグ装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH0944374A true JPH0944374A (ja) | 1997-02-14 |
| JP2817675B2 JP2817675B2 (ja) | 1998-10-30 |
Family
ID=16622148
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP7212411A Expired - Fee Related JP2817675B2 (ja) | 1995-07-28 | 1995-07-28 | プログラム・デバッグ装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2817675B2 (ja) |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH0399338A (ja) * | 1989-09-12 | 1991-04-24 | Fujitsu Ltd | マイクロプロセッサ |
-
1995
- 1995-07-28 JP JP7212411A patent/JP2817675B2/ja not_active Expired - Fee Related
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH0399338A (ja) * | 1989-09-12 | 1991-04-24 | Fujitsu Ltd | マイクロプロセッサ |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2817675B2 (ja) | 1998-10-30 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6959367B2 (en) | System having read-modify-write unit | |
| EP0638864B1 (en) | Development support system for microcomputer with internal cache | |
| JPH07311740A (ja) | コンピュータ | |
| JP2003515805A (ja) | プロセッサシステム | |
| US5586336A (en) | Microcomputer capable of monitoring internal resources from external | |
| JP2817675B2 (ja) | プログラム・デバッグ装置 | |
| JPH11316695A (ja) | ス―パ―スカラ―マイクロプロセッサ―の停止点インタ―ラプト発生装置 | |
| JPH08171504A (ja) | エミュレ−ション装置 | |
| US7877533B2 (en) | Bus system, bus slave and bus control method | |
| JPH1063574A (ja) | キャッシュメモリ付プロセッサ | |
| JP3169878B2 (ja) | メモリ制御回路 | |
| JP2808985B2 (ja) | 情報処理装置及びデバッグ装置 | |
| JP2734382B2 (ja) | インサーキットエミュレータおよびそのデバッグ方法 | |
| JP2666737B2 (ja) | トレースメモリ内蔵マイクロプロセッサおよびトレース方法 | |
| JPH06103110A (ja) | ブレークポイント設定方式 | |
| JPH10269199A (ja) | 命令追い越し処理回路 | |
| JPH04344947A (ja) | プログラム制御装置 | |
| JPH09319592A (ja) | マイクロコンピュータ | |
| JPH03129536A (ja) | ブレークアドレス検出装置 | |
| JPH08179944A (ja) | オンラインファームウェア入れ替え方式 | |
| JP2004185356A (ja) | デバッグ装置 | |
| JPH02183342A (ja) | 割込み制御装置 | |
| JPH0778731B2 (ja) | 情報処理装置 | |
| JPH09160786A (ja) | マイクロプロセッサ | |
| JPH08272647A (ja) | ソフトウェア評価装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| LAPS | Cancellation because of no payment of annual fees |