JPH01177644A - デバック装置 - Google Patents
デバック装置Info
- Publication number
- JPH01177644A JPH01177644A JP63001905A JP190588A JPH01177644A JP H01177644 A JPH01177644 A JP H01177644A JP 63001905 A JP63001905 A JP 63001905A JP 190588 A JP190588 A JP 190588A JP H01177644 A JPH01177644 A JP H01177644A
- Authority
- JP
- Japan
- Prior art keywords
- subroutine
- register
- address
- program
- actual
- 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
- 238000000034 method Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 1
Landscapes
- Debugging And Monitoring (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
本発明はデバッグ装置に関し、特にプログラムのサブル
ーチンの実引数、又は局所変数へのアクセスを高速に行
うことを特徴とするデバッグ装置である。
ーチンの実引数、又は局所変数へのアクセスを高速に行
うことを特徴とするデバッグ装置である。
(従来の技術)
従来、実機に接続してデバッグを行うためのデバッグ装
置では、アクセスしようとする実機中のプログラムメモ
リのアドレスを指定して、該アドレスへのデータの書込
み、又は該アドレスからのデータの読出しを行っていた
。
置では、アクセスしようとする実機中のプログラムメモ
リのアドレスを指定して、該アドレスへのデータの書込
み、又は該アドレスからのデータの読出しを行っていた
。
(発明が解決しようとする問題点)
上述した従来の方式、たとえば高級言語で書がれなプロ
グラムでは、プログラム実行時に、サブルーチンが呼ば
れた時に、実行時スタックに実引数、局所変数、呼び側
のサブルーチンのフレームを指すフレームポインタの値
、及び戻り番地からなるスタックフレームを形成される
。このとき、指定されたサブルーチンの実引数、局所変
数に対応するメモリアドレスにアクセスする時、以下の
ような問題が発生する。
グラムでは、プログラム実行時に、サブルーチンが呼ば
れた時に、実行時スタックに実引数、局所変数、呼び側
のサブルーチンのフレームを指すフレームポインタの値
、及び戻り番地からなるスタックフレームを形成される
。このとき、指定されたサブルーチンの実引数、局所変
数に対応するメモリアドレスにアクセスする時、以下の
ような問題が発生する。
まず、実行時スタック中の最近呼ばれたサブルーチンの
スタックフレームから呼び側のサブルーチンのスタック
フレームへ、スタックフレーム中のフレームポインタを
たどりなから、スタックフレームの内容を調べる。
スタックフレームから呼び側のサブルーチンのスタック
フレームへ、スタックフレーム中のフレームポインタを
たどりなから、スタックフレームの内容を調べる。
もし、スタックフレーム中の戻り番地が指定されたサブ
ルーチンの命令領域に含まれるならば、該スタックフレ
ームに対応するサブルーチンを呼んだサブルーチンが、
指定されたサブルーチンであることがわかる。したがっ
て、該サブルーチンのスタックフレーム中に保持されて
いる実引数、局所変数にアクセスすることになる。
ルーチンの命令領域に含まれるならば、該スタックフレ
ームに対応するサブルーチンを呼んだサブルーチンが、
指定されたサブルーチンであることがわかる。したがっ
て、該サブルーチンのスタックフレーム中に保持されて
いる実引数、局所変数にアクセスすることになる。
この時、プログラムのソースファイル、シンボルテーブ
ルを保持するホストマシンとデバッグ装置とを回線によ
り結合して、ホストマシンから、指定された関数の実引
数、局所変数にアクセスしようとすると、該関数の命令
領域、アクセスしようとする実引数、局所変数のフレー
ム内の相対位置に関する情報が、ホストマシンのみにし
かないため、上述のように、実行スタックを辿っていく
場合に、ホストマシンとデバッグ装置間の通信回数が増
加し、サブルーチンの実引数、又は局所変数へのアクセ
スが高速には行われなくなり、デバッグ作業の能率低下
をまねいていた。
ルを保持するホストマシンとデバッグ装置とを回線によ
り結合して、ホストマシンから、指定された関数の実引
数、局所変数にアクセスしようとすると、該関数の命令
領域、アクセスしようとする実引数、局所変数のフレー
ム内の相対位置に関する情報が、ホストマシンのみにし
かないため、上述のように、実行スタックを辿っていく
場合に、ホストマシンとデバッグ装置間の通信回数が増
加し、サブルーチンの実引数、又は局所変数へのアクセ
スが高速には行われなくなり、デバッグ作業の能率低下
をまねいていた。
本発明は、このような従来の欠点を解決したもので、そ
の目的は、プログラムのサブル−チンの実引数、又は局
所変数へのアクセスを高速にしてデバッグ作業の能率を
高めることになる。
の目的は、プログラムのサブル−チンの実引数、又は局
所変数へのアクセスを高速にしてデバッグ作業の能率を
高めることになる。
(問題を解決するための手段)
本発明は、デバッグ装置において、該実機で実行中のプ
ログラムのサブルーチン開始アドレスを保持する第1の
レジスタと該サブルーチン終了アドレスを保持する第2
のレジスタと実機中で実行されるサブルーチンの引数、
もしくは局所変数の格納される領域の、フレームポイン
タからのオフセットを保持する第3のレジスタと該領域
から読み出したデータ、もしくは該領域へ書込むデータ
を保持する第4のレジスタと実機中のプログラムメモリ
にあるサブルーチンの実行スタックより、第1のレジス
タ及び第2のレジスタに対応するサブルーチンのフレー
ムを見出し、該フレームより、第3のレジスタに格納さ
れたオフセット値で指定されるサブルーチンの実引数、
もしくは局所変数のアドレスの内容を読出し、第4のレ
ジスタに設定する手段、及び、該アドレスに第4のレジ
スタの内容を書込む手段を有する。
ログラムのサブルーチン開始アドレスを保持する第1の
レジスタと該サブルーチン終了アドレスを保持する第2
のレジスタと実機中で実行されるサブルーチンの引数、
もしくは局所変数の格納される領域の、フレームポイン
タからのオフセットを保持する第3のレジスタと該領域
から読み出したデータ、もしくは該領域へ書込むデータ
を保持する第4のレジスタと実機中のプログラムメモリ
にあるサブルーチンの実行スタックより、第1のレジス
タ及び第2のレジスタに対応するサブルーチンのフレー
ムを見出し、該フレームより、第3のレジスタに格納さ
れたオフセット値で指定されるサブルーチンの実引数、
もしくは局所変数のアドレスの内容を読出し、第4のレ
ジスタに設定する手段、及び、該アドレスに第4のレジ
スタの内容を書込む手段を有する。
(実−施例)
次に本発明の実施例について図面を参照して説明する。
第1図は本発明のデバッグ装置の一実施例のブロック図
であり、デバッグ装置1と実機2とで構成されている。
であり、デバッグ装置1と実機2とで構成されている。
デバッグ装置1は、プロセッサ10、メモリ14、デイ
スプレィ15、キーボード16実機のプロセッサ20を
制御する制御回路103、指定されたサブルーチンの開
始アドレスを格納するレジスタ17、指定されたサブル
ーチンの終了アドレスを格納するレジスタ18、指定さ
れたサブルーチンにおいてアクセスする局所変数、又は
実引数へのフレームポインタからのオフセット値を格納
するレジスタ19、アクセスされた局所変数、又は実引
数へ設定するデータ、又は該局所変数又は実引数から読
み出されたデータを格納するデータレジスタ101、読
み又は書きのアクセス方法を保持するアクセスレジスタ
102を具備する。
スプレィ15、キーボード16実機のプロセッサ20を
制御する制御回路103、指定されたサブルーチンの開
始アドレスを格納するレジスタ17、指定されたサブル
ーチンの終了アドレスを格納するレジスタ18、指定さ
れたサブルーチンにおいてアクセスする局所変数、又は
実引数へのフレームポインタからのオフセット値を格納
するレジスタ19、アクセスされた局所変数、又は実引
数へ設定するデータ、又は該局所変数又は実引数から読
み出されたデータを格納するデータレジスタ101、読
み又は書きのアクセス方法を保持するアクセスレジスタ
102を具備する。
プロセッサ10、メモリ14、デイプレイ15、キーボ
ード16、レジスタ17、レジスタ18、レジスタ19
、データレジスタ101はデータバス11、アドレスバ
ス12、コントロールバス13によって接続されている
。実機2はプロセー6 = ッサ20、メモリ24を具備する。−アドレスバス22
、プロセッサ20とメモリ24はデータバス21、コン
トロールハス23によって接続されている。デバッグ装
置1のメモリ14には、デイスプレィ15とキーボード
16を制御して、指定されたサブルーチンの命令開始ア
ドレスをレジスタ17に設定し該サブルーチンの命令終
了アドレスをレジスタ18に設定し該サブルーチンのア
クセスする局所変数、又は実引数のフレームポインタか
らのオフセット値をレジスタ19に設定し、該局所変数
又は実引数への読み又は書きのアクセス方法を命令レジ
スタ102に設定し該局所変数、又は実引数に設定する
データをデータレジスタ101に設定し又は、該局所変
数、又は実引数から読出されたデータを保持するデータ
レジスタ101からデータを読出すプログラムが含まれ
る。
ード16、レジスタ17、レジスタ18、レジスタ19
、データレジスタ101はデータバス11、アドレスバ
ス12、コントロールバス13によって接続されている
。実機2はプロセー6 = ッサ20、メモリ24を具備する。−アドレスバス22
、プロセッサ20とメモリ24はデータバス21、コン
トロールハス23によって接続されている。デバッグ装
置1のメモリ14には、デイスプレィ15とキーボード
16を制御して、指定されたサブルーチンの命令開始ア
ドレスをレジスタ17に設定し該サブルーチンの命令終
了アドレスをレジスタ18に設定し該サブルーチンのア
クセスする局所変数、又は実引数のフレームポインタか
らのオフセット値をレジスタ19に設定し、該局所変数
又は実引数への読み又は書きのアクセス方法を命令レジ
スタ102に設定し該局所変数、又は実引数に設定する
データをデータレジスタ101に設定し又は、該局所変
数、又は実引数から読出されたデータを保持するデータ
レジスタ101からデータを読出すプログラムが含まれ
る。
次に第1図のデバッグ装置の動作を、第2図及び第3図
を用いて説明する。
を用いて説明する。
まず、デバッグ装置1において、メモリ14に含まれる
前記プログラムを起動させる。該プログラムはキーボー
ド16よりアクセスするサブルーチンの命令開始アドレ
ス、命令終了アドレス、アクセスする局所変数又は実引
数のフレームポインタからのオフセラ1〜値を入力され
、それぞれレジスタ17、レジスタ18、レジスタ19
に設定し、更に、アクセス方法を命令レジスタ102に
設定し、命令レジスタ102の内容が書き込み命令の場
合は、データレジスタ101に書込みデータを設定する
。
前記プログラムを起動させる。該プログラムはキーボー
ド16よりアクセスするサブルーチンの命令開始アドレ
ス、命令終了アドレス、アクセスする局所変数又は実引
数のフレームポインタからのオフセラ1〜値を入力され
、それぞれレジスタ17、レジスタ18、レジスタ19
に設定し、更に、アクセス方法を命令レジスタ102に
設定し、命令レジスタ102の内容が書き込み命令の場
合は、データレジスタ101に書込みデータを設定する
。
次に、実機2の実行中断状態において、第2図に示す処
理をメモリ14に含まれる制御プログラムは行う。即ち
、該制御プログラムは、プロセッサ20のフレームポイ
ンタレジスタの内容(第3図)をメモリ14にある変数
Aに設定する(第2図201)。
理をメモリ14に含まれる制御プログラムは行う。即ち
、該制御プログラムは、プロセッサ20のフレームポイ
ンタレジスタの内容(第3図)をメモリ14にある変数
Aに設定する(第2図201)。
次に、サブルーチンのスタックフレームにおいて、変数
Aからオフセット値の離れたところに格納されているサ
ブルーチンの戻り番地を求め、メモリ14にある変数B
に設定する(第2図202)。
Aからオフセット値の離れたところに格納されているサ
ブルーチンの戻り番地を求め、メモリ14にある変数B
に設定する(第2図202)。
次に、変数Bの内容、即ち戻り番地が、レジスタ17に
含まれる。指定されたサブルーチンの開始アドレスとレ
ジスタ18に含まれるサブルーチンの終了アドレスの間
にあるか否が判定される(第2図203〉。もし間にあ
えば、着目しているサブルーチンを呼んだサブルーチン
が、指定されたサブルーチンである。
含まれる。指定されたサブルーチンの開始アドレスとレ
ジスタ18に含まれるサブルーチンの終了アドレスの間
にあるか否が判定される(第2図203〉。もし間にあ
えば、着目しているサブルーチンを呼んだサブルーチン
が、指定されたサブルーチンである。
もし、サブルーチンの戻り番地がレジスタ17とレジス
タ18の間になければ、着目しているサブルーチンを呼
んだサブルーチンは指定されたサブルーチンではない。
タ18の間になければ、着目しているサブルーチンを呼
んだサブルーチンは指定されたサブルーチンではない。
ゆえに、フレームポインタからオフセット値の離れた箇
所に格納されている該サブルーチンを呼んだサブルーチ
ンのフレームポインタを求め、変数Aに設定する(第2
図205)。
所に格納されている該サブルーチンを呼んだサブルーチ
ンのフレームポインタを求め、変数Aに設定する(第2
図205)。
前記のサブルーチンの戻り番地の判定を行う。
前記のサブルーチンの戻り番地の判定203において、
指定されたサブルーチンが見出された時、変数Aに゛指
定されたサブルーチンのスタックフレームのポインタ値
を設定する(第2図204)。
指定されたサブルーチンが見出された時、変数Aに゛指
定されたサブルーチンのスタックフレームのポインタ値
を設定する(第2図204)。
次に、第2図206において命令レジスタ102の内容
を調べ、書込み指示の場合は、変動Aの内容からレジス
タ19に含まれるオフセット値離れたメモリアドレスに
、データレジスタ101の内容を書き込む(第2図20
7〉。
を調べ、書込み指示の場合は、変動Aの内容からレジス
タ19に含まれるオフセット値離れたメモリアドレスに
、データレジスタ101の内容を書き込む(第2図20
7〉。
又、読出し指示の場合は、当該アドレスの内容をデータ
レジスタ101に設定する。以上でメモリ14に含まれ
る制御プログラムの動作は終了する(第2図208)。
レジスタ101に設定する。以上でメモリ14に含まれ
る制御プログラムの動作は終了する(第2図208)。
・
(発明の効果)
以上説明したように本発明は、実機において高級言語な
どで書かれたプログラムが実行された時形成される実行
時スタックになるサブルーチンの局所変数又は実引数に
アクセスする場合に、デバッグ装置内に実機内の実行的
スタックを辿る手段を具備することにより、アドレスの
みによるメモリアクセスしか許さないデバッグ装置に比
べて、高速にアクセスすることが可能となる。更に、デ
バッグ装置とホストマシンとを回線で接続してデー1〇
− バックする場合に、ホストマシンとデバッグ装置間の通
信量を減少させることができ、従来のデバッグ装置に比
べてデバッグ効果を向上させるという効果がある。
どで書かれたプログラムが実行された時形成される実行
時スタックになるサブルーチンの局所変数又は実引数に
アクセスする場合に、デバッグ装置内に実機内の実行的
スタックを辿る手段を具備することにより、アドレスの
みによるメモリアクセスしか許さないデバッグ装置に比
べて、高速にアクセスすることが可能となる。更に、デ
バッグ装置とホストマシンとを回線で接続してデー1〇
− バックする場合に、ホストマシンとデバッグ装置間の通
信量を減少させることができ、従来のデバッグ装置に比
べてデバッグ効果を向上させるという効果がある。
図面の簡単な説明
第1図は本発明の実施例を示すブロック図、第2図は実
機において実行スタックにあるサブルーチンの局所変数
又は実引数にアクセスする処理の一例を示す流れ図、第
3図は第2図の説明のための実機における実行スタック
の一例を示す図である。
機において実行スタックにあるサブルーチンの局所変数
又は実引数にアクセスする処理の一例を示す流れ図、第
3図は第2図の説明のための実機における実行スタック
の一例を示す図である。
1・・・デバッグ装置 10・・・データバス11・・
・アドレスバス 12・・・コントロールバス14・・
・メモリ 15・・・デイスプレィ16・・・キ
ーボ”−ド 17・・・レジスタ18・・・レジスタ
19・・・レジスタ101・・・データレジスタ 102・・・アクセスレジスタ
・アドレスバス 12・・・コントロールバス14・・
・メモリ 15・・・デイスプレィ16・・・キ
ーボ”−ド 17・・・レジスタ18・・・レジスタ
19・・・レジスタ101・・・データレジスタ 102・・・アクセスレジスタ
Claims (1)
- プロセッサと該プロセッサの制御プログラムを記録した
プログラムメモリとを具備する実機の、システムバスも
しくは該プロセッサの端子からアドレス信号、データ信
号およびコントロール信号を取出してプログラムデバッ
グを行うデバッグ装置であって、該実機で実行中のプロ
グラムのサブルーチン開始アドレスを保有する第1のレ
ジスタと該サブルーチンの終了アドレスを保持する第2
のレジスタと実機中で実行されるサブルーチンの引数も
しくは局所変数の格納される領域のフレームポインタか
らのオフセットを保持する第3のレジスタと該領域から
読み出したデータ、もしくは該領域へ書込むデータを保
持する第4のレジスタと実機中のプログラムメモリにあ
るサブルーチンの実行スタックより、第1のレジスタ及
び第2のレジスタに対応するサブルーチンのフレームを
見出し、該フレームより第3のレジスタに格納されたオ
フセット値で指定されるサブルーチンの実引数もしくは
局所変数のアドレスの内容を読出し第4のレジスタに設
定する手段、及び該アドレスに第4のレジスタの内容を
書込む手段を有し、プログラムのサブルーチンの実引数
、又は局所変数へのアクセスを高速に行うことを特徴と
するデバッグ装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP63001905A JPH0724030B2 (ja) | 1988-01-08 | 1988-01-08 | デバック装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP63001905A JPH0724030B2 (ja) | 1988-01-08 | 1988-01-08 | デバック装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH01177644A true JPH01177644A (ja) | 1989-07-13 |
| JPH0724030B2 JPH0724030B2 (ja) | 1995-03-15 |
Family
ID=11514593
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP63001905A Expired - Fee Related JPH0724030B2 (ja) | 1988-01-08 | 1988-01-08 | デバック装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0724030B2 (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH07168743A (ja) * | 1993-12-16 | 1995-07-04 | Nec Corp | 利用者プログラム異常終了時の情報表示システム |
| JP2008305337A (ja) * | 2007-06-11 | 2008-12-18 | Panasonic Corp | プログラム変換装置、プログラム変換方法、プログラム、記憶媒体、デバッグ装置、デバッグ方法及びプログラム開発システム |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS59221753A (ja) * | 1983-06-01 | 1984-12-13 | Hitachi Ltd | サブル−チントレ−サ |
| JPS61128743U (ja) * | 1985-01-25 | 1986-08-12 |
-
1988
- 1988-01-08 JP JP63001905A patent/JPH0724030B2/ja not_active Expired - Fee Related
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS59221753A (ja) * | 1983-06-01 | 1984-12-13 | Hitachi Ltd | サブル−チントレ−サ |
| JPS61128743U (ja) * | 1985-01-25 | 1986-08-12 |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH07168743A (ja) * | 1993-12-16 | 1995-07-04 | Nec Corp | 利用者プログラム異常終了時の情報表示システム |
| JP2008305337A (ja) * | 2007-06-11 | 2008-12-18 | Panasonic Corp | プログラム変換装置、プログラム変換方法、プログラム、記憶媒体、デバッグ装置、デバッグ方法及びプログラム開発システム |
Also Published As
| Publication number | Publication date |
|---|---|
| JPH0724030B2 (ja) | 1995-03-15 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR900013389A (ko) | 프로그램 감독장치가 내장된 데이터처리시스템 | |
| JPH01177644A (ja) | デバック装置 | |
| JPS6367695B2 (ja) | ||
| JPH0721766B2 (ja) | Fortran入出力制御処理装置 | |
| JPH05108404A (ja) | デバツガシステム | |
| KR890008681A (ko) | 프로세서 제어 장치 | |
| JP2815638B2 (ja) | デバッグ装置 | |
| JPS59197946A (ja) | メモリ装置 | |
| JP2788353B2 (ja) | タスクトレース方法 | |
| JP2669300B2 (ja) | プログラムトレース回路およびプログラムトレース方法 | |
| JPH044434A (ja) | プログラムのトレース方法 | |
| JPH05197596A (ja) | トレーサ | |
| JP2507791B2 (ja) | デ―タ処理装置 | |
| JPS5968067A (ja) | 走行ステツプ数指定処理方式 | |
| JPH0793184A (ja) | デバッグ装置 | |
| JPH06131212A (ja) | 他のプログラムによるターゲットプログラムの呼び出しに関してターゲットプログラムの実行を追跡するコンピュータ制御方法 | |
| JPH04167146A (ja) | 情報処理装置のアドレストレース方式 | |
| JP2601541B2 (ja) | Fortran入出力並び処理方式 | |
| JPH1165875A (ja) | インサーキットエミュレータ | |
| JPH01130237A (ja) | 情報処理装置 | |
| KR890016477A (ko) | 전자식 교환기의 운용 프로그램 및 데이타 로딩방법 | |
| JPH04260139A (ja) | ファイルアクセス処理装置 | |
| JPH04328644A (ja) | デバッグ支援装置 | |
| JPS6136253B2 (ja) | ||
| JPS61290546A (ja) | マイクロプログラム制御装置のトレ−ス方式 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| LAPS | Cancellation because of no payment of annual fees |