JP2815638B2 - デバッグ装置 - Google Patents

デバッグ装置

Info

Publication number
JP2815638B2
JP2815638B2 JP1301540A JP30154089A JP2815638B2 JP 2815638 B2 JP2815638 B2 JP 2815638B2 JP 1301540 A JP1301540 A JP 1301540A JP 30154089 A JP30154089 A JP 30154089A JP 2815638 B2 JP2815638 B2 JP 2815638B2
Authority
JP
Japan
Prior art keywords
register
program
variable
allocated
contents
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.)
Expired - Fee Related
Application number
JP1301540A
Other languages
English (en)
Other versions
JPH03161843A (ja
Inventor
伸博 松竹
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP1301540A priority Critical patent/JP2815638B2/ja
Publication of JPH03161843A publication Critical patent/JPH03161843A/ja
Application granted granted Critical
Publication of JP2815638B2 publication Critical patent/JP2815638B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Devices For Executing Special Programs (AREA)

Description

【発明の詳細な説明】 〔概要〕 変数がレジスタ割付けされたプログラムから呼び出さ
れた先のプログラムの中断位置で当該変数のアクセスを
行うデバッグ装置に関し、 レジスタに割付けられた変数、この変数の開始位置、
終了位置およびレジスタ番号をレジスタ割付け情報とし
て予め生成して保存しておき、デバッグ時に呼び出し先
のプログラムの中断位置でこのレジスタ割付け情報を参
照して退避域の内容をアクセスあるいは復帰時に該当レ
ジスタの内容を更新し、最適化によってレジスタ割付け
されたロードモジュールレベルの呼び出し先のプログラ
ムに対して高級言語ビューでデバッグを可能にすること
を目的とし、 最適化によってレジスタ割付けした変数、開始位置、
終了位置およびレジスタ番号をレジスタ割付け情報とし
て予め作成して保存しておき、デバッグ時にあるプログ
ラムから呼び出されたプログラム中の中断位置でこのレ
ジスタ割付け情報を参照し、アクセスしようとする変数
が呼び出し元のプログラムの分岐位置でレジスタ割付け
されかつ開始位置および終了位置の範囲内のときにレジ
スタ番号を取り出し、このレジスタ番号の内容の退避先
の領域をアクセスしたり、あるいは変数の更新値を記憶
しておき呼び出し元のプログラムに復帰したときに該当
レジスタ番号の内容を更新するように構成する。
〔産業上の利用分野〕
本発明は、変数がレジスタ割付けされたプログラムか
ら呼び出された先のプログラムの中断位置で当該変数の
アクセスを行うデバッグ装置に関するものである。
〔従来の技術と発明が解決しようとする課題〕
従来、ソースプログラムの翻訳時の最適化によってレ
ジスタ割付けされた変数について、この変数が宣言され
ているプログラムから呼び出されたプログラムの中断位
置でこの変数の値を参照/更新などしてデバッグする場
合、機械語ビュー(ロードモジュールレベル)で行うよ
うにしていた。このため、ソースプログラムを記述した
高級言語ビューでデバッグを行うことができず、デバッ
グし難いという問題があった。
本発明は、レジスタに割付けられた変数、この変数の
開始位置、終了位置およびレジスタ番号をレジスタ割付
け情報として予め生成して保存しておき、デバッグ時に
呼び出し先のプログラムの中断位置でこのレジスタ割付
け情報を参照して退避域の内容をアクセスあるいは復帰
時に該当レジスタの内容を更新し、最適化によってレジ
スタ割付けされたロードモジュールレベルの呼び出し先
のプログラムに対して高級言語ビューでデバッグを可能
にすることを目的としている。
〔課題を解決する手段〕
第1図を参照して課題を解決する手段を説明する。
第1図において、プログラム1は、呼び出し元のロー
ドモジュールレベルのプログラムである。
プログラム2は、プログラム1から呼び出されたロー
ドモジュールレベルのプログラムである。
レジスタ退避域3は、プログラム1のレジスタの内容
を退避する領域である。
レジスタ割付け情報4は、最適化によってレジスタ割
付けされた変数、この変数の開始位置、終了位置および
レジスタ番号をを予め作成して保存したものである。
〔作用〕
本発明は、第1図に示すように、デバッグ時にプログ
ラム1から呼び出されたプログラム2の中断位置でレジ
スタ割付け情報4を参照し、アクセスしようとする変数
が呼び出し元のプログラム1の分岐位置でレジスタ割付
けされかつ開始位置および終了位置の範囲内のときにレ
ジスタ番号を取り出し、このレジスタ番号の内容の退避
先のレジスタ退避域3をアクセスしたり、変数の更新値
を退避しておき呼び出し元のプログラム1に復帰したと
きに当該レジスタ番号の内容を更新するようにしてい
る。
従って、レジスタに割付けられた変数、この変数の開
始位置、終了位置およびレジスタ番号をレジスタ割付け
情報4として予め生成して保存しておき、デバッグ時に
呼び出し先のプログラム2の中断位置でこのレジスタ割
付け情報4を参照して退避域の内容をアクセスあるいは
復帰時に該当レジスタの内容を更新することにより、最
適化によってレジスタ割付けされたロードモジュールレ
ベルの呼び出し先のプログラム2に対して高級言語ビュ
ーでデバッグすることが可能となる。
〔実施例〕
次に、第1図から第3図を用いて本発明の1実施例の
構成および動作を順次詳細に説明する。
第1図(イ)において、プログラム1は、呼び出し元
のロードモジュールレベルのプログラムである。ここで
は、INTEGER Iによって変数Iを定義し、CALLプログラ
ム2によってプログラム2を呼び出すようにしている。
このCALLプログラム2の位置(ロードモジュール上のセ
クションの先頭からのオフセットアドレス)が分岐位置
であって、分岐時に記録しておく。
プログラム2は、プログラム1から呼び出されたロー
ドモジュールレベルのプログラムである。このプログラ
ム2が呼び出されたときに、プログラム1が使用してい
たレジスタに格納されていた値(内容)をレジスタ退避
域3に図示のように退避する。そして、図示中断位置に
予め埋め込まれたデバッガ呼び出し命令によって制御が
デバッガに渡り、デバッガが第1図(ロ)レジスタ割付
け情報4を参照して変数の値のアクセスを行う。
第1図(ロ)は、レジスタ割付け情報を示す。ここ
で、開始位置情報は変数がレジスタ割付けされた範囲の
開始位置(ソースプログラムの行番号、ロードモジュー
ルのセクションの先頭からのオフセットアドレス)であ
る。終了位置情報は変数がレジスタ割付けされた範囲の
終了位置(ソースプログラムの行番号、ロードモジュー
ルのセクションの先頭からのオフセットアドレス)であ
る。変数情報はレジスタ割付けされている変数名、属性
などである。レジスタ情報は変数に割り付けたレジスタ
番号、種類などである。尚、実際には、開始位置情報/
終了位置情報/変数情報は直接にこれらの情報を持つの
でなく、これらの情報を1箇所に集めてポインタによっ
てポイントし、他からも使用し得るようにして領域サイ
ズを小さくしている。
次に、第2図および第3図に示す順序に従い、第1図
構成の動作を詳細に説明する。
第2図において、は、デバッガの起動を行う。
は、中断位置の設定指示を行う。これは、で起動
したデバッガによって表示された画面上から第1図
(イ)中断位置の指定を行う。
は、プログラムの実行開始指示する。ここでは、第
1図(イ)プログラム1の先頭から実行開始指示を行
う。
は、プログラム1の実行を開始する。
は、プログラム2の呼び出しか否かを判別する。こ
れは、第1図(イ)プログラム1の先頭から順次実行
し、CALLプログラム2によってプログラム2が呼び出さ
れたか否かを判別する。YESの場合には、以降を行
う。NOの場合には、を繰り返し行う。
は、分岐位置のオフセットアドレスを記録する。こ
れは、第1図(イ)に示すように、プログラム2が呼び
出された図示分岐位置の例えばオフセットアドレス“10
0"を記録する。
は、プログラム2の実行をないしとして行う。
は、レジスタの内容を退避を行う。これは、第1図
(イ)プログラム2の先頭のレジスタ退避で、プログラ
ム1で使用していたレジスタの内容をレジスタ退避域3
に退避する。
は、命令を実行する。
は、中断位置か否かを判別する。YESの場合には、
で制御がデバッガに渡りデバッガの処理を行う(第3
図)。NOの場合には、を繰り返し行う。
次に、中断位置で制御を受け取ったデバッガの処理を
説明する。
第3図において、は、変数の値の表示指示を行う。
これは、中断位置で制御を受け取ったデバッガが画面を
表示し、この画面から利用者が変数の値の表示指示を行
う。例えばプログラム1で宣言された変数Iの値の表示
指示を行う。
は、変数が宣言されたプログラムと、中断中のプロ
グラムが同一か否かを判別する。YESの場合には、変数
の値がレジスタに退避されていないので、で変数に割
付けられた領域/レジスタを参照してその内容を表示す
る。NOの場合には、を行う。
は、変数が分岐位置でレジスタ割付けされているか
否かを判別する。これは、第2図で記録しておいた分
岐位置のオフセットアドレスで当該変数にレジスタ割付
けされているか否かをレジスタ割付け情報4を参照して
判別する。ここでは、例えば第1図(イ)プログラム1
で宣言された変数Iが分岐位置100で、第1図(ロ)レ
ジスタ割付け情報4を参照してに示すようにオフセッ
トアドレス“050"から“110"の範囲内であるので、YES
となり、を実行する。一方、NOの場合には、レジスタ
割付けされていないので、を行う。
は、レジスタ番号を調べる。これは、例えばでレ
ジスタ割付けされていると判明した変数Iの第1図
(ロ)のレジスタ番号“1"を取り出す。
は、退避域からレジスタの内容を得る。これは、第
1図(イ)レジスタ退避域3のレジスタ番号に対応する
領域から退避したレジスタの内容を取り出す。
は、その内容を表示する。
以上の処理によって、例えば変数Iが宣言されたプロ
グラム1から呼び出した先のプログラム2の中断位置
で、変数Iの値を参照しようとするときに、第1図
(ロ)レジスタ割付け情報4を参照して当該変数Iにプ
ログラム1の分岐位置でレジスタ割付けされているレジ
スタ番号を見つけ出し、このレジスタ番号の内容が退避
されているレジスタ退避域3からその内容を取り出して
表示することが可能となる。
また、呼び出し先のプログラム2の中断位置で変数
の更新指示した場合には、該当レジスタ番号の退避域を
変更する旨および変更すべき値を退避しておき、元のプ
ログラム1に復帰時に退避しておいた値を取り出して該
当レジスタに設定して更新、更に必要に応じて変数に割
付けされている領域の内容を更新する。
〔発明の効果〕
以上説明したように、本発明によれば、レジスタに割
付けられた変数、この変数の開始位置、終了位置および
レジスタ番号をレジスタ割付け情報4として予め生成し
て保存しておき、デバッグ時に変数が宣言さたプログラ
ム1から呼び出されたプログラム2の中断位置でこのレ
ジスタ割付け情報4を参照してレジスタ退避域3の内容
をアクセスあるいは復帰時に該当レジスタ/領域の内容
を更新する構成を採用しているため、最適化によってレ
ジスタ割付けされたロードモジュールレベルのプログラ
ムに対して高級言語ビューでデバッグを行うことができ
る。
【図面の簡単な説明】
第1図は本発明の1実施例構成図、第2図は本発明の動
作説明フローチャート、第3図は第2図のデバッガ処
理フローチャートを示す。 図中、プログラム1は呼び出し元のプログラム、プログ
ラム2は呼び出し先のプログラム、3はレジスタ退避
域、4はレジスタ割付け情報を表す。

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】呼び出し元のプログラムから呼び出された
    呼び出し先のプログラムが最初にレジスタの退避処理を
    行う複数のプログラムをデバッグするデバッグ装置であ
    って、 レジスタ割付けした変数についてレジスタが割り付けら
    れている区間の開始位置と終了位置およびレジスタ番号
    をレジスタ割付け情報として記憶する手段と、 呼び出し元プログラムにおいて定義された変数へのアク
    セスに際して、アクセス対象の変数が呼び出し元のプロ
    グラムの呼び出し時点でレジスタ割付けされていたか否
    かを前記レジスタ割付け情報に基づいて判定する手段
    と、 レジスタ割付けされている場合に、レジスタの代わりに
    退避領域にアクセスする手段と を有するデバッグ装置。
JP1301540A 1989-11-20 1989-11-20 デバッグ装置 Expired - Fee Related JP2815638B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1301540A JP2815638B2 (ja) 1989-11-20 1989-11-20 デバッグ装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1301540A JP2815638B2 (ja) 1989-11-20 1989-11-20 デバッグ装置

Publications (2)

Publication Number Publication Date
JPH03161843A JPH03161843A (ja) 1991-07-11
JP2815638B2 true JP2815638B2 (ja) 1998-10-27

Family

ID=17898168

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1301540A Expired - Fee Related JP2815638B2 (ja) 1989-11-20 1989-11-20 デバッグ装置

Country Status (1)

Country Link
JP (1) JP2815638B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3612294B2 (ja) 2001-08-06 2005-01-19 松下電器産業株式会社 デバッグ方法およびデバッグ装置

Also Published As

Publication number Publication date
JPH03161843A (ja) 1991-07-11

Similar Documents

Publication Publication Date Title
US5161226A (en) Microprocessor inverse processor state usage
KR930000592B1 (ko) 타스크 추적장치
JP2815638B2 (ja) デバッグ装置
JP2555920B2 (ja) オンラインリアルタイム処理装置
JPH03127122A (ja) データ処理装置における演算処理方式
JPH07200350A (ja) ソフトウェアデバッガ
JP3085309B2 (ja) デバッグシステム
JP2795676B2 (ja) プログラムトレース装置
JPH05108404A (ja) デバツガシステム
JPH05181712A (ja) スタック履歴作成方式
JPH0561717A (ja) プログラムデバツグ装置
JPH044434A (ja) プログラムのトレース方法
JPH10214180A (ja) ソフトウェアの開発支援方法
JPH0795288B2 (ja) マイクロコンピュータ
JPS61241843A (ja) 情報処理装置
JPH01177644A (ja) デバック装置
JPH08171499A (ja) デバッグ装置
JPH04147339A (ja) 情報処理装置
JPS638946A (ja) プログラムデバツグサポ−ト方式
JPH0816428A (ja) オブジェクト指向プログラムのコンパイルシステム及びデバッグ方法
JPS63223931A (ja) 論理図実行ル−ト出力処理方式
JPS62219073A (ja) 図形処理システムにおける図面デ−タ回復方式
JPH04236635A (ja) 識別名検索処理方式
JPH04262429A (ja) インサーキットエミュレータ
JPH04107639A (ja) 電子計算機

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080814

Year of fee payment: 10

LAPS Cancellation because of no payment of annual fees