JPH05289908A - プログラムトレーサ - Google Patents
プログラムトレーサInfo
- Publication number
- JPH05289908A JPH05289908A JP4113066A JP11306692A JPH05289908A JP H05289908 A JPH05289908 A JP H05289908A JP 4113066 A JP4113066 A JP 4113066A JP 11306692 A JP11306692 A JP 11306692A JP H05289908 A JPH05289908 A JP H05289908A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- address
- program
- disturbs
- traced
- 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)【要約】
【目的】 特定の命令のアドレスのみを履歴格納用メモ
リに格納して、履歴格納用メモリの効率的な使用を可能
にする。 【構成】 命令判定部10は、トレース対象のプログラ
ムのトレースが行われる際に、命令入力ルート2から受
け取る命令がアドレスストリームを擾乱させる命令であ
る場合に、当該アドレスストリームを擾乱させる命令の
アドレスと当該アドレスストリームを擾乱させる命令に
係るジャンプ先の命令のアドレスとをアドレス入力ルー
ト1から履歴格納用メモリ20に格納するための制御を
行う。出力制御部30は、トレース対象のプログラムの
トレース結果の確認が行われる際に、履歴格納用メモリ
20の参照に基づいてトレース対象のプログラムの実行
の経緯を再現し、その実行の経緯を示すトレース結果を
出力部40に出力させるための制御を行う。
リに格納して、履歴格納用メモリの効率的な使用を可能
にする。 【構成】 命令判定部10は、トレース対象のプログラ
ムのトレースが行われる際に、命令入力ルート2から受
け取る命令がアドレスストリームを擾乱させる命令であ
る場合に、当該アドレスストリームを擾乱させる命令の
アドレスと当該アドレスストリームを擾乱させる命令に
係るジャンプ先の命令のアドレスとをアドレス入力ルー
ト1から履歴格納用メモリ20に格納するための制御を
行う。出力制御部30は、トレース対象のプログラムの
トレース結果の確認が行われる際に、履歴格納用メモリ
20の参照に基づいてトレース対象のプログラムの実行
の経緯を再現し、その実行の経緯を示すトレース結果を
出力部40に出力させるための制御を行う。
Description
【0001】
【産業上の利用分野】本発明は、ソフトウェアのデバッ
グ手法の1つにおいて使用されるプログラムトレーサに
関し、特に機械語レベルのプログラム(プログラム中の
命令が機械語プログラム中の命令と1対1に対応する当
該プログラム。機械語プログラム自体も含まれる)のト
レースを行うプログラムトレーサに関する。
グ手法の1つにおいて使用されるプログラムトレーサに
関し、特に機械語レベルのプログラム(プログラム中の
命令が機械語プログラム中の命令と1対1に対応する当
該プログラム。機械語プログラム自体も含まれる)のト
レースを行うプログラムトレーサに関する。
【0002】
【従来の技術】従来、この種のプログラムトレーサは、
トレース対象のプログラム中の1つの命令が実行される
毎に、当該命令のアドレス(トレース対象のプログラム
における当該命令の位置を示すアドレス)を履歴格納用
メモリ(アドレスの履歴を示す情報を格納するメモリ)
に格納していた。そして、その履歴格納用メモリ内のア
ドレスが順次に後に読み出されることにより、当該プロ
グラムの実行の経緯(当該プログラムがトレース時に実
際に走行したアドレスルート)を示すトレース結果の確
認が行われていた。
トレース対象のプログラム中の1つの命令が実行される
毎に、当該命令のアドレス(トレース対象のプログラム
における当該命令の位置を示すアドレス)を履歴格納用
メモリ(アドレスの履歴を示す情報を格納するメモリ)
に格納していた。そして、その履歴格納用メモリ内のア
ドレスが順次に後に読み出されることにより、当該プロ
グラムの実行の経緯(当該プログラムがトレース時に実
際に走行したアドレスルート)を示すトレース結果の確
認が行われていた。
【0003】なお、通常のプログラムの実行におけるア
ドレスの連続性は高い。すなわち、プログラム中の各命
令は原則的に逐次に実行され、アドレスストリームを擾
乱させる命令(例えば、ジャンプ命令やサブルーチンコ
ール命令)等によって例外的に非連続的な実行が行われ
ている。
ドレスの連続性は高い。すなわち、プログラム中の各命
令は原則的に逐次に実行され、アドレスストリームを擾
乱させる命令(例えば、ジャンプ命令やサブルーチンコ
ール命令)等によって例外的に非連続的な実行が行われ
ている。
【0004】
【発明が解決しようとする課題】上述した従来のプログ
ラムトレーサでは、1つの命令が実行される毎に当該命
令のアドレスが履歴格納用メモリに格納されるので、大
きなプログラムのトレースが行われる際には、トレース
の可能な範囲が履歴格納用メモリのサイズ(一般的には
それほど大きくない)によって制限されるという欠点が
あった。
ラムトレーサでは、1つの命令が実行される毎に当該命
令のアドレスが履歴格納用メモリに格納されるので、大
きなプログラムのトレースが行われる際には、トレース
の可能な範囲が履歴格納用メモリのサイズ(一般的には
それほど大きくない)によって制限されるという欠点が
あった。
【0005】本発明の目的は、上述の点に鑑み、通常の
プログラムの実行においてはアドレスの連続性が高いこ
とに注目し、特定の命令のアドレスのみを履歴格納用メ
モリに格納して、履歴格納用メモリの効率的な使用を可
能にするプログラムトレーサを提供することにある。
プログラムの実行においてはアドレスの連続性が高いこ
とに注目し、特定の命令のアドレスのみを履歴格納用メ
モリに格納して、履歴格納用メモリの効率的な使用を可
能にするプログラムトレーサを提供することにある。
【0006】
【課題を解決するための手段】本発明のプログラムトレ
ーサは、機械語レベルのプログラムのトレースを行うプ
ログラムトレーサにおいて、アドレスストリームを擾乱
させる命令のアドレスと当該アドレスストリームを擾乱
させる命令に係るジャンプ先の命令のアドレスとを記憶
する履歴格納用メモリと、トレース対象のプログラムの
トレースが行われる際においてある命令の実行時に当該
命令がアドレスストリームを擾乱させる命令であるか否
かを判定し当該命令がアドレスストリームを擾乱させる
命令である場合に当該アドレスストリームを擾乱させる
命令のアドレスと当該アドレスストリームを擾乱させる
命令に係るジャンプ先の命令のアドレスとを前記履歴格
納用メモリに格納するための制御を行う命令判定部と、
トレース対象のプログラムのトレース結果の確認が行わ
れる際に前記履歴格納用メモリの参照に基づいてトレー
ス対象のプログラムの実行の経緯を再現しその実行の経
緯を示すトレース結果を出力部に出力させるための制御
を行う出力制御部とを有する。
ーサは、機械語レベルのプログラムのトレースを行うプ
ログラムトレーサにおいて、アドレスストリームを擾乱
させる命令のアドレスと当該アドレスストリームを擾乱
させる命令に係るジャンプ先の命令のアドレスとを記憶
する履歴格納用メモリと、トレース対象のプログラムの
トレースが行われる際においてある命令の実行時に当該
命令がアドレスストリームを擾乱させる命令であるか否
かを判定し当該命令がアドレスストリームを擾乱させる
命令である場合に当該アドレスストリームを擾乱させる
命令のアドレスと当該アドレスストリームを擾乱させる
命令に係るジャンプ先の命令のアドレスとを前記履歴格
納用メモリに格納するための制御を行う命令判定部と、
トレース対象のプログラムのトレース結果の確認が行わ
れる際に前記履歴格納用メモリの参照に基づいてトレー
ス対象のプログラムの実行の経緯を再現しその実行の経
緯を示すトレース結果を出力部に出力させるための制御
を行う出力制御部とを有する。
【0007】
【作用】本発明のプログラムトレーサでは、履歴格納用
メモリがアドレスストリームを擾乱させる命令のアドレ
スと当該アドレスストリームを擾乱させる命令に係るジ
ャンプ先の命令のアドレスとを記憶し、命令判定部がト
レース対象のプログラムのトレースが行われる際におい
てある命令の実行時に当該命令がアドレスストリームを
擾乱させる命令であるか否かを判定し当該命令がアドレ
スストリームを擾乱させる命令である場合に当該アドレ
スストリームを擾乱させる命令のアドレスと当該アドレ
スストリームを擾乱させる命令に係るジャンプ先の命令
のアドレスとを履歴格納用メモリに格納するための制御
を行い、出力制御部がトレース対象のプログラムのトレ
ース結果の確認が行われる際に履歴格納用メモリの参照
に基づいてトレース対象のプログラムの実行の経緯を再
現しその実行の経緯を示すトレース結果を出力部に出力
させるための制御を行う。
メモリがアドレスストリームを擾乱させる命令のアドレ
スと当該アドレスストリームを擾乱させる命令に係るジ
ャンプ先の命令のアドレスとを記憶し、命令判定部がト
レース対象のプログラムのトレースが行われる際におい
てある命令の実行時に当該命令がアドレスストリームを
擾乱させる命令であるか否かを判定し当該命令がアドレ
スストリームを擾乱させる命令である場合に当該アドレ
スストリームを擾乱させる命令のアドレスと当該アドレ
スストリームを擾乱させる命令に係るジャンプ先の命令
のアドレスとを履歴格納用メモリに格納するための制御
を行い、出力制御部がトレース対象のプログラムのトレ
ース結果の確認が行われる際に履歴格納用メモリの参照
に基づいてトレース対象のプログラムの実行の経緯を再
現しその実行の経緯を示すトレース結果を出力部に出力
させるための制御を行う。
【0008】
【実施例】次に、本発明について図面を参照して詳細に
説明する。
説明する。
【0009】図1は、本発明のプログラムトレーサの一
実施例の構成を示すブロック図である。本実施例のプロ
グラムトレーサは、アドレス入力ルート1(トレース対
象のプログラムが格納されているメモリと接続されてい
るアドレスバス等)と、トレース対象のプログラム中の
命令をデータとして入力する命令入力ルート2(トレー
ス対象のプログラムが格納されているメモリと接続され
ているデータバス等)と、命令判定部10から履歴格納
用メモリ20に送出される書込み指示信号を伝送する書
込み指示信号線3と、アドレス入力ルート1から入力し
た命令がアドレスストリームを擾乱させる命令(プログ
ラムの実行におけるアドレスの非連続を惹起する命令)
であるか否かを判定する命令判定部(命令判定回路)1
0と、特定の命令(アドレスストリームを擾乱させる命
令等)のアドレスのみをアドレスの履歴を示す情報とし
て記憶する履歴格納用メモリ20と、トレース対象のプ
ログラムのトレース結果の確認が行われる場合に当該プ
ログラムの実行の経緯を示すトレース結果を再現し出力
するための制御を行う出力制御部30と、出力制御部3
0の制御に基づいてトレース結果を出力する出力部40
とを含んで構成されている。
実施例の構成を示すブロック図である。本実施例のプロ
グラムトレーサは、アドレス入力ルート1(トレース対
象のプログラムが格納されているメモリと接続されてい
るアドレスバス等)と、トレース対象のプログラム中の
命令をデータとして入力する命令入力ルート2(トレー
ス対象のプログラムが格納されているメモリと接続され
ているデータバス等)と、命令判定部10から履歴格納
用メモリ20に送出される書込み指示信号を伝送する書
込み指示信号線3と、アドレス入力ルート1から入力し
た命令がアドレスストリームを擾乱させる命令(プログ
ラムの実行におけるアドレスの非連続を惹起する命令)
であるか否かを判定する命令判定部(命令判定回路)1
0と、特定の命令(アドレスストリームを擾乱させる命
令等)のアドレスのみをアドレスの履歴を示す情報とし
て記憶する履歴格納用メモリ20と、トレース対象のプ
ログラムのトレース結果の確認が行われる場合に当該プ
ログラムの実行の経緯を示すトレース結果を再現し出力
するための制御を行う出力制御部30と、出力制御部3
0の制御に基づいてトレース結果を出力する出力部40
とを含んで構成されている。
【0010】次に、このように構成された本実施例のプ
ログラムトレーサの動作について説明する。
ログラムトレーサの動作について説明する。
【0011】第1に、トレース対象のプログラムのトレ
ースが行われる場合の動作について説明する。
ースが行われる場合の動作について説明する。
【0012】命令判定部10は、ある命令の実行時に、
命令入力ルート2から当該命令を受け取り、当該命令が
アドレスストリームを擾乱させる命令(ジャンプ命令ま
たはサブルーチンコール命令等)であるか否かを判定す
る。
命令入力ルート2から当該命令を受け取り、当該命令が
アドレスストリームを擾乱させる命令(ジャンプ命令ま
たはサブルーチンコール命令等)であるか否かを判定す
る。
【0013】命令判定部10は、「当該命令がアドレス
ストリームを擾乱させる命令である」と判定した場合
に、書込み指示信号線3上に書込み指示信号を送出し、
その時点で実行されている命令(上述の「当該命令」)
のアドレスを履歴格納用メモリ20に書き込む(格納す
る)旨の指示を発行する。
ストリームを擾乱させる命令である」と判定した場合
に、書込み指示信号線3上に書込み指示信号を送出し、
その時点で実行されている命令(上述の「当該命令」)
のアドレスを履歴格納用メモリ20に書き込む(格納す
る)旨の指示を発行する。
【0014】この書込み指示信号に基づいて、履歴格納
用メモリ20にはアドレス入力ルート1を介して当該命
令(その時点で実行されているアドレスストリームを擾
乱させる命令)のアドレスが格納される。
用メモリ20にはアドレス入力ルート1を介して当該命
令(その時点で実行されているアドレスストリームを擾
乱させる命令)のアドレスが格納される。
【0015】さらに、命令判定部10は、当該アドレス
ストリームを擾乱させる命令に係るジャンプ先の命令の
実行時に、書込み指示信号線11上に書込み指示信号を
送出し、当該ジャンプ先の命令のアドレスを履歴格納用
メモリ20に書き込む旨の指示を発行する。
ストリームを擾乱させる命令に係るジャンプ先の命令の
実行時に、書込み指示信号線11上に書込み指示信号を
送出し、当該ジャンプ先の命令のアドレスを履歴格納用
メモリ20に書き込む旨の指示を発行する。
【0016】この書込み指示信号に基づいて、履歴格納
用メモリ20にはアドレス入力ルート1を介して当該命
令(その時点で実行されているジャンプ先の命令)のア
ドレスが格納される。
用メモリ20にはアドレス入力ルート1を介して当該命
令(その時点で実行されているジャンプ先の命令)のア
ドレスが格納される。
【0017】一方、命令判定部10は、「当該命令がア
ドレスストリームを擾乱させる命令ではない」と判定し
た場合には、履歴格納用メモリ20への書込み指示信号
の送出を行わない。したがって、この場合には履歴格納
用メモリ20へのアドレスの書込みは行われない。
ドレスストリームを擾乱させる命令ではない」と判定し
た場合には、履歴格納用メモリ20への書込み指示信号
の送出を行わない。したがって、この場合には履歴格納
用メモリ20へのアドレスの書込みは行われない。
【0018】第2に、トレース対象のプログラムのトレ
ース結果の確認が行われる場合の動作について説明す
る。
ース結果の確認が行われる場合の動作について説明す
る。
【0019】出力制御部30は、命令入力ルート2か
ら、トレース対象のプログラム中の各命令を逐次的に
(順に)読み出す。ただし、読み出した命令のアドレス
が履歴格納用メモリ20に「アドレスストリームを擾乱
させる命令のアドレス」として格納されている場合に
は、当該アドレスに対応するジャンプ先アドレスを履歴
格納用メモリ20から取り出し、そのアドレスに存在す
る命令(当該アドレスストリームを擾乱させる命令に係
るジャンプ先の命令)を当該アドレスストリームを擾乱
させる命令の次に命令入力ルート2から読み出す。以上
のような読出しを行うために、出力制御部30は、命令
入力ルート2からトレース対象のプログラム中の各命令
を読み出す際に、履歴格納用メモリ20を参照する。
ら、トレース対象のプログラム中の各命令を逐次的に
(順に)読み出す。ただし、読み出した命令のアドレス
が履歴格納用メモリ20に「アドレスストリームを擾乱
させる命令のアドレス」として格納されている場合に
は、当該アドレスに対応するジャンプ先アドレスを履歴
格納用メモリ20から取り出し、そのアドレスに存在す
る命令(当該アドレスストリームを擾乱させる命令に係
るジャンプ先の命令)を当該アドレスストリームを擾乱
させる命令の次に命令入力ルート2から読み出す。以上
のような読出しを行うために、出力制御部30は、命令
入力ルート2からトレース対象のプログラム中の各命令
を読み出す際に、履歴格納用メモリ20を参照する。
【0020】出力制御部30は、上述のような読出しに
基づき、トレース対象のプログラムがトレース時に実際
に走行したアドレスルート(当該プログラムの実行の経
緯)を再現し、その実行の経緯を示すトレース結果を出
力部40に送付する。
基づき、トレース対象のプログラムがトレース時に実際
に走行したアドレスルート(当該プログラムの実行の経
緯)を再現し、その実行の経緯を示すトレース結果を出
力部40に送付する。
【0021】出力部40は、そのトレース結果の出力
(表示または印字等)を行う。これによって、トレース
対象のプログラムのトレース結果の再現および確認が可
能になる。
(表示または印字等)を行う。これによって、トレース
対象のプログラムのトレース結果の再現および確認が可
能になる。
【0022】
【発明の効果】以上説明したように本発明は、特定の命
令(アドレスストリームを擾乱させる命令および当該ア
ドレスストリームを擾乱させる命令に係るジャンプ先の
命令)のアドレスのみを履歴格納用メモリに格納するこ
とにより、履歴格納用メモリを効率的に使用することが
でき、少ない容量の履歴格納用メモリで広範な範囲のト
レースが可能になる(大きなプログラムであっても履歴
格納用メモリの容量の制限を受けずにトレースを行うこ
とが可能になる)という効果がある。
令(アドレスストリームを擾乱させる命令および当該ア
ドレスストリームを擾乱させる命令に係るジャンプ先の
命令)のアドレスのみを履歴格納用メモリに格納するこ
とにより、履歴格納用メモリを効率的に使用することが
でき、少ない容量の履歴格納用メモリで広範な範囲のト
レースが可能になる(大きなプログラムであっても履歴
格納用メモリの容量の制限を受けずにトレースを行うこ
とが可能になる)という効果がある。
【図1】本発明の一実施例の構成を示すブロック図であ
る。
る。
1 アドレス入力ルート 2 命令入力ルート 3 書込み指示信号線 10 命令判定部 20 履歴格納用メモリ 30 出力制御部 40 出力部
Claims (1)
- 【請求項1】 機械語レベルのプログラムのトレースを
行うプログラムトレーサにおいて、 アドレスストリームを擾乱させる命令のアドレスと当該
アドレスストリームを擾乱させる命令に係るジャンプ先
の命令のアドレスとを記憶する履歴格納用メモリと、 トレース対象のプログラムのトレースが行われる際に、
ある命令の実行時に当該命令がアドレスストリームを擾
乱させる命令であるか否かを判定し、当該命令がアドレ
スストリームを擾乱させる命令である場合に当該アドレ
スストリームを擾乱させる命令のアドレスと当該アドレ
スストリームを擾乱させる命令に係るジャンプ先の命令
のアドレスとを前記履歴格納用メモリに格納するための
制御を行う命令判定部と、 トレース対象のプログラムのトレース結果の確認が行わ
れる際に、前記履歴格納用メモリの参照に基づいてトレ
ース対象のプログラムの実行の経緯を再現し、その実行
の経緯を示すトレース結果を出力部に出力させるための
制御を行う出力制御部とを有することを特徴とするプロ
グラムトレーサ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4113066A JPH05289908A (ja) | 1992-04-06 | 1992-04-06 | プログラムトレーサ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4113066A JPH05289908A (ja) | 1992-04-06 | 1992-04-06 | プログラムトレーサ |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH05289908A true JPH05289908A (ja) | 1993-11-05 |
Family
ID=14602642
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP4113066A Pending JPH05289908A (ja) | 1992-04-06 | 1992-04-06 | プログラムトレーサ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH05289908A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07200348A (ja) * | 1993-11-23 | 1995-08-04 | Rockwell Internatl Corp | プログラムアドレスデータを圧縮する方法および装置ならびにプログラムのデバッギング処理を速める装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS60239842A (ja) * | 1984-05-15 | 1985-11-28 | Mitsubishi Electric Corp | プログラムトレ−ス装置 |
-
1992
- 1992-04-06 JP JP4113066A patent/JPH05289908A/ja active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS60239842A (ja) * | 1984-05-15 | 1985-11-28 | Mitsubishi Electric Corp | プログラムトレ−ス装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07200348A (ja) * | 1993-11-23 | 1995-08-04 | Rockwell Internatl Corp | プログラムアドレスデータを圧縮する方法および装置ならびにプログラムのデバッギング処理を速める装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH08339298A (ja) | マイクロプロセッサにおける命令追加方法及びそれを用いたマイクロプロセッサ | |
JPH05289908A (ja) | プログラムトレーサ | |
CN116089316B (zh) | 一种基于动态断点的内核驱动数据调试方法 | |
JPH0250740A (ja) | アドレストレーサ | |
JPH0581087A (ja) | プロセサのモニタ方式 | |
JPH0326416B2 (ja) | ||
JP2666737B2 (ja) | トレースメモリ内蔵マイクロプロセッサおよびトレース方法 | |
JPH05265799A (ja) | データ処理装置 | |
JPS59158450A (ja) | プログラムテスト装置 | |
JPH0683705A (ja) | マイクロコンピュータlsi | |
JPH05197596A (ja) | トレーサ | |
JPH04242455A (ja) | プロセッサ間通信トレース回路 | |
JPH05120080A (ja) | フアームウエア実行履歴記憶方式 | |
JPH0272440A (ja) | プログラム実行ステップ観測方式 | |
JPH0795288B2 (ja) | マイクロコンピュータ | |
JPS5829057A (ja) | レジスタのトレ−ス装置 | |
JPH0520055A (ja) | 特別データ判別機能付き記憶装置 | |
JPS5915876A (ja) | 回路動作記憶装置 | |
JPH0512068A (ja) | トレース及びメモリ制御回路 | |
JPH05241911A (ja) | ハードウェア制御命令トレース回路 | |
JPH0527967A (ja) | 計算機システム | |
JPH0883200A (ja) | プログラマブルコントローラ | |
JPH04305783A (ja) | マイクロコンピュータ | |
JPH04372025A (ja) | アクセスビットつき記憶装置 | |
JPS63103330A (ja) | アドレススタツク使用ミス検出方式 |