JPH11272500A - デバッグ方法ならびにそのためのデバッグ装置およびプログラム記憶媒体 - Google Patents
デバッグ方法ならびにそのためのデバッグ装置およびプログラム記憶媒体Info
- Publication number
- JPH11272500A JPH11272500A JP10072350A JP7235098A JPH11272500A JP H11272500 A JPH11272500 A JP H11272500A JP 10072350 A JP10072350 A JP 10072350A JP 7235098 A JP7235098 A JP 7235098A JP H11272500 A JPH11272500 A JP H11272500A
- Authority
- JP
- Japan
- Prior art keywords
- information
- program
- source code
- address
- dump
- 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.)
- Withdrawn
Links
Landscapes
- Debugging And Monitoring (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
(57)【要約】
【課題】 本来のソ−スコ−ドの参照を期待できないプ
ログラムに対するデバッグ作業の簡単化、効率化を図る
ことを目的とする。 【解決手段】 ダンプ情報2から、異常発生ステップの
アドレスやモジュ−ル間の呼び出し関係などのデバッグ
情報、および異常発生プログラム情報を抽出する抽出部
4、当該プログラム情報を逆コンパイルしてそのソ−ス
コ−ドを生成する逆コンパイル部5、このソ−スコ−ド
やデバッグ情報を表示する表示部10、前記ソ−スコ−
ドの取込み機能、抽出部4に対する入出力機能、および
表示部10に対する出力機能を有するデバッガ部9など
を備えている。走行プログラムが異常終了すると、デバ
ッガ部9は、ダンプ情報2から求めたデバッグ情報や、
ロケ−ション情報(各モジュ−ルのエントリアドレス)
3を用いて異常発生ステップの相対アドレスを特定し、
そのソ−スコ−ドを表示部10に強調表示させる。
ログラムに対するデバッグ作業の簡単化、効率化を図る
ことを目的とする。 【解決手段】 ダンプ情報2から、異常発生ステップの
アドレスやモジュ−ル間の呼び出し関係などのデバッグ
情報、および異常発生プログラム情報を抽出する抽出部
4、当該プログラム情報を逆コンパイルしてそのソ−ス
コ−ドを生成する逆コンパイル部5、このソ−スコ−ド
やデバッグ情報を表示する表示部10、前記ソ−スコ−
ドの取込み機能、抽出部4に対する入出力機能、および
表示部10に対する出力機能を有するデバッガ部9など
を備えている。走行プログラムが異常終了すると、デバ
ッガ部9は、ダンプ情報2から求めたデバッグ情報や、
ロケ−ション情報(各モジュ−ルのエントリアドレス)
3を用いて異常発生ステップの相対アドレスを特定し、
そのソ−スコ−ドを表示部10に強調表示させる。
Description
【0001】
【発明の属する技術分野】本発明は、本運用時に発生す
るダンプ情報を用いたデバッグ手法に関し、特にダンプ
情報から異常発生プログラム情報を抽出して逆コンパイ
ルし、この逆コンパイルで生成されるソ−スコ−ドの内
容を表示することを基本構成とするものである。
るダンプ情報を用いたデバッグ手法に関し、特にダンプ
情報から異常発生プログラム情報を抽出して逆コンパイ
ルし、この逆コンパイルで生成されるソ−スコ−ドの内
容を表示することを基本構成とするものである。
【0002】本明細書では、機械命令/中間コ−ドに展
開する前のプログラムを「ソ−スコ−ド」または「ソ−
スプログラム」、機械命令/中間コ−ドに展開した後の
プログラムを「モジュ−ル」または「プログラム」と記
し、複数のモジュ−ルを編集結合したプログラムを「ロ
−ドモジュ−ル」という。
開する前のプログラムを「ソ−スコ−ド」または「ソ−
スプログラム」、機械命令/中間コ−ドに展開した後の
プログラムを「モジュ−ル」または「プログラム」と記
し、複数のモジュ−ルを編集結合したプログラムを「ロ
−ドモジュ−ル」という。
【0003】また、ソ−スコ−ドを機械命令/中間コ−
ドに展開することを「コンパイル」と表現し、機械命令
/中間コ−ドからそれに対応のソ−スコ−ドを生成する
ことを「逆コンパイル」と表現する。
ドに展開することを「コンパイル」と表現し、機械命令
/中間コ−ドからそれに対応のソ−スコ−ドを生成する
ことを「逆コンパイル」と表現する。
【0004】一般に、プログラム作成にともなうデバッ
グには多大な時間と労力を要しているため、その作業効
率を高めるともに作業時間の短縮化を図ることが望まし
く、本発明はこのような要請に応えるものである。
グには多大な時間と労力を要しているため、その作業効
率を高めるともに作業時間の短縮化を図ることが望まし
く、本発明はこのような要請に応えるものである。
【0005】
【従来の技術】従来、テスト環境を構築したテストツ−
ルやデバッグツ−ルを利用した単体モジュ−ルテストや
結合モジュ−ルテストが行なわれている。
ルやデバッグツ−ルを利用した単体モジュ−ルテストや
結合モジュ−ルテストが行なわれている。
【0006】この場合、モジュ−ルまたはロ−ドモジュ
−ルとともにソ−スコ−ドも提供されていることが前提
となっており、デバッグツ−ルの利用者はこのソ−スコ
−ドを参照しながらデバッグを実行している。
−ルとともにソ−スコ−ドも提供されていることが前提
となっており、デバッグツ−ルの利用者はこのソ−スコ
−ドを参照しながらデバッグを実行している。
【0007】最近、ソ−スプログラムを作成する言語も
高級化しており、ダンプ情報の中の機械命令を展開前の
ステ−トメントへマッピングすることが容易でなくなっ
てきている。
高級化しており、ダンプ情報の中の機械命令を展開前の
ステ−トメントへマッピングすることが容易でなくなっ
てきている。
【0008】また、ソ−スプログラムのコ−ディングス
テップを直接機械命令に展開せずに、中間コ−ドに展開
し、各システムが中間コ−ドを解析しながらプログラム
を実行する言語もある。
テップを直接機械命令に展開せずに、中間コ−ドに展開
し、各システムが中間コ−ドを解析しながらプログラム
を実行する言語もある。
【0009】このような言語の場合、ダンプ情報には中
間コ−ドが出力されているので、デバッグを容易に行な
うことができない。
間コ−ドが出力されているので、デバッグを容易に行な
うことができない。
【0010】
【発明が解決しようとする課題】このように、従来のデ
バッグ手法は、利用者が、機械命令/中間コ−ドとこれ
らの展開元のソ−スコ−ドの両者を参照しながらプログ
ラムの異常発生原因を探究することを基本としているの
で、例えばソ−スコ−ドが提供されないプログラムや、
ソ−スコ−ドの提供後にその内容が変更された場合など
にはデバッグ作業が非常に難しくなるという問題点があ
った。
バッグ手法は、利用者が、機械命令/中間コ−ドとこれ
らの展開元のソ−スコ−ドの両者を参照しながらプログ
ラムの異常発生原因を探究することを基本としているの
で、例えばソ−スコ−ドが提供されないプログラムや、
ソ−スコ−ドの提供後にその内容が変更された場合など
にはデバッグ作業が非常に難しくなるという問題点があ
った。
【0011】そこで、本発明では、ダンプ情報から抽出
した異常発生プログラム情報をソ−スコ−ドに逆コンパ
イルして表示し、また、ダンプ情報から異常発生ステッ
プのアドレスやモジュ−ル間の呼び出し情報などのデバ
ッグ情報を抽出して表示することにより、本来のソ−ス
コ−ドの参照を期待できないプログラムに対するデバッ
グ作業の簡単化、効率化を図ることを目的とする。
した異常発生プログラム情報をソ−スコ−ドに逆コンパ
イルして表示し、また、ダンプ情報から異常発生ステッ
プのアドレスやモジュ−ル間の呼び出し情報などのデバ
ッグ情報を抽出して表示することにより、本来のソ−ス
コ−ドの参照を期待できないプログラムに対するデバッ
グ作業の簡単化、効率化を図ることを目的とする。
【0012】
【課題を解決するための手段】この目的を達成するた
め、 プログラム走行時の異常発生にともなうダンプ情報を
用いることによりプログラムの異常発生原因を探究する
デバッグ方法において、前記ダンプ情報から異常発生プ
ログラム情報を抽出して逆コンパイルし、この逆コンパ
イルで生成されるソ−スコ−ドの内容を表示する、よう
にしたことを特徴とするデバッグ方法、 プログラム走行時の異常発生にともなうダンプ情報を
用いることによりプログラムの異常発生原因を探究する
デバッグ装置において、前記ダンプ情報から、少なくと
も異常が発生したプログラム情報を抽出する抽出部と、
当該プログラム情報を逆コンパイルしてそのソ−スコ−
ドを生成する逆コンパイル部と、この逆コンパイル部で
生成されるソ−スコ−ドの内容を少なくとも表示する表
示部と、前記ソ−スコ−ドの取込み機能、前記抽出部に
対する入出力機能、および前記表示部に対する出力機能
を有するデバッガ部、を備えたことを特徴とするデバッ
グ装置、 プログラム走行時の異常発生にともなうダンプ情報を
用いることによりプログラムの異常発生原因を探究する
デバッグのときに用いられ、前記ダンプ情報から異常発
生プログラム情報を抽出して逆コンパイルし、この逆コ
ンパイルで生成されるソ−スコ−ドの内容を表示する、
機能をコンピュ−タに実現させるためのプログラムを格
納したことを特徴とするコンピュ−タ読み取り可能なプ
ログラム記憶媒体、を用いることを基本としている。
め、 プログラム走行時の異常発生にともなうダンプ情報を
用いることによりプログラムの異常発生原因を探究する
デバッグ方法において、前記ダンプ情報から異常発生プ
ログラム情報を抽出して逆コンパイルし、この逆コンパ
イルで生成されるソ−スコ−ドの内容を表示する、よう
にしたことを特徴とするデバッグ方法、 プログラム走行時の異常発生にともなうダンプ情報を
用いることによりプログラムの異常発生原因を探究する
デバッグ装置において、前記ダンプ情報から、少なくと
も異常が発生したプログラム情報を抽出する抽出部と、
当該プログラム情報を逆コンパイルしてそのソ−スコ−
ドを生成する逆コンパイル部と、この逆コンパイル部で
生成されるソ−スコ−ドの内容を少なくとも表示する表
示部と、前記ソ−スコ−ドの取込み機能、前記抽出部に
対する入出力機能、および前記表示部に対する出力機能
を有するデバッガ部、を備えたことを特徴とするデバッ
グ装置、 プログラム走行時の異常発生にともなうダンプ情報を
用いることによりプログラムの異常発生原因を探究する
デバッグのときに用いられ、前記ダンプ情報から異常発
生プログラム情報を抽出して逆コンパイルし、この逆コ
ンパイルで生成されるソ−スコ−ドの内容を表示する、
機能をコンピュ−タに実現させるためのプログラムを格
納したことを特徴とするコンピュ−タ読み取り可能なプ
ログラム記憶媒体、を用いることを基本としている。
【0013】さらには、 ・前記ダンプ情報から異常発生ステップのアドレスを抽
出して当該ステップに対応のソ−スコ−ドを特定し、こ
の特定ソ−スコ−ドの内容を強調表示する、 ・前記アドレスを抽出する際に、複数のプログラムを結
合編集したロ−ドモジュ−ルにおける各プログラムのエ
ントリ−アドレスを示すロケ−ション情報を参照する、 ・前記ダンプ情報から任意のデバッグ情報(異常発生ス
テップのアドレスやモジュ−ル間の呼び出し情報など)
を抽出して表示する、ようにしている。
出して当該ステップに対応のソ−スコ−ドを特定し、こ
の特定ソ−スコ−ドの内容を強調表示する、 ・前記アドレスを抽出する際に、複数のプログラムを結
合編集したロ−ドモジュ−ルにおける各プログラムのエ
ントリ−アドレスを示すロケ−ション情報を参照する、 ・前記ダンプ情報から任意のデバッグ情報(異常発生ス
テップのアドレスやモジュ−ル間の呼び出し情報など)
を抽出して表示する、ようにしている。
【0014】このような構成をとっているので、利用者
は、異常発生ステップのソ−スコ−ドの内容や各モジュ
−ル間の呼び出し関係などを表示部で参照することによ
り、デバッグ作業を効率的に進めることができる。
は、異常発生ステップのソ−スコ−ドの内容や各モジュ
−ル間の呼び出し関係などを表示部で参照することによ
り、デバッグ作業を効率的に進めることができる。
【0015】
【発明の実施の形態】図1乃至図8を参照して本発明の
実施の形態を説明する。図1は、デバッグシステムの概
要を示す説明図であり、1は、プログラムの逆コンパイ
ル機能を備えた計算機、2は、本運用中に発生したダン
プ情報(図2参照)、3は、結合編集した後の各モジュ
−ルの先頭アドレスからなるロケ−ション情報(図3参
照)、4は、異常終了したプログラム単位の機械命令や
中間コ−ド、デバッグ対象ステップ(異常終了の原因と
なったステップ)を究明するためのシステム情報、スタ
ック情報、トレ−ス情報(図2参照)やロケ−ション情
報、および利用者が指示したデバッグ情報をダンプ情報
2から取り出す抽出部、5は、抽出部4で取り出したプ
ログラム単位のソ−スコ−ドを生成する逆コンパイル
部、6は、逆コンパイルしたソ−スコ−ドを保持するメ
モリ部、7は、コンパイル時に生成され、ソ−スコ−ド
とそれの機械命令または中間コ−ドとの対応関係からな
るソ−スコ−ド対応情報、8は、利用者からの指示を入
力する入力部、9は、抽出部4に抽出指示を与えたり、
抽出部4で取り出したデバッグ情報(システム情報、ス
タック情報、ロケ−ション情報など)や、メモリ部6か
ら読み出したソ−スコ−ドに基づいて異常終了ステップ
のソ−スコ−ド部分を特定したり、また、表示対象のバ
イナリ−デ−タを利用者が視覚可能な表示用デ−タに変
換したりするデバッガ部、10はデバッガ部9から得ら
れるデバッグ情報を端末、プリンタおよびファイルなど
に出力する表示部、をそれぞれ示している。
実施の形態を説明する。図1は、デバッグシステムの概
要を示す説明図であり、1は、プログラムの逆コンパイ
ル機能を備えた計算機、2は、本運用中に発生したダン
プ情報(図2参照)、3は、結合編集した後の各モジュ
−ルの先頭アドレスからなるロケ−ション情報(図3参
照)、4は、異常終了したプログラム単位の機械命令や
中間コ−ド、デバッグ対象ステップ(異常終了の原因と
なったステップ)を究明するためのシステム情報、スタ
ック情報、トレ−ス情報(図2参照)やロケ−ション情
報、および利用者が指示したデバッグ情報をダンプ情報
2から取り出す抽出部、5は、抽出部4で取り出したプ
ログラム単位のソ−スコ−ドを生成する逆コンパイル
部、6は、逆コンパイルしたソ−スコ−ドを保持するメ
モリ部、7は、コンパイル時に生成され、ソ−スコ−ド
とそれの機械命令または中間コ−ドとの対応関係からな
るソ−スコ−ド対応情報、8は、利用者からの指示を入
力する入力部、9は、抽出部4に抽出指示を与えたり、
抽出部4で取り出したデバッグ情報(システム情報、ス
タック情報、ロケ−ション情報など)や、メモリ部6か
ら読み出したソ−スコ−ドに基づいて異常終了ステップ
のソ−スコ−ド部分を特定したり、また、表示対象のバ
イナリ−デ−タを利用者が視覚可能な表示用デ−タに変
換したりするデバッガ部、10はデバッガ部9から得ら
れるデバッグ情報を端末、プリンタおよびファイルなど
に出力する表示部、をそれぞれ示している。
【0016】図2は、ダンプ情報を示す説明図であり、 ・異常終了時の実行アドレスを示す例えばPSW(progr
am status word) やシステム制御表を示す例えばTCB
(task contorol block) などで構成されるシステム情報
21、 ・プログラム単位の機械命令や中間コ−ドで構成される
プログラム情報22、 ・プログラム間の呼び出し関係やプログラム呼び出し時
の入出力情報などで構成され、プログラムごとに存在す
るスタック情報23、 ・各プログラムの動作情報やプログラム呼び出し時の入
出力情報(例えば呼び出し元モジュ−ルの戻りアドレ
ス)などで構成されるトレ−ス情報24、を有するダン
プ情報2を表している。
am status word) やシステム制御表を示す例えばTCB
(task contorol block) などで構成されるシステム情報
21、 ・プログラム単位の機械命令や中間コ−ドで構成される
プログラム情報22、 ・プログラム間の呼び出し関係やプログラム呼び出し時
の入出力情報などで構成され、プログラムごとに存在す
るスタック情報23、 ・各プログラムの動作情報やプログラム呼び出し時の入
出力情報(例えば呼び出し元モジュ−ルの戻りアドレ
ス)などで構成されるトレ−ス情報24、を有するダン
プ情報2を表している。
【0017】スタック情報23は現時点の情報のみから
なり、トレ−ス情報24は各プログラムの現時点までの
情報の軌跡からなる点で両者は相違している。
なり、トレ−ス情報24は各プログラムの現時点までの
情報の軌跡からなる点で両者は相違している。
【0018】トレ−ス情報24は、異常終了時のデバッ
グを実行する際に必須のものではないが、プログラム
(ロ−ドモジュ−ル)が誤動作を続けている場合にそれ
を時間的に遡って調査するときに有効な情報である。
グを実行する際に必須のものではないが、プログラム
(ロ−ドモジュ−ル)が誤動作を続けている場合にそれ
を時間的に遡って調査するときに有効な情報である。
【0019】図3は、ロケ−ション情報を示す説明図で
あり、 ・ダンプ情報2のプログラム情報22に出力されている
モジュ−ルM1、モジュ−ルM2およびモジュ−ルM3
それぞれのモジュ−ル名、 ・これらのモジュ−ルを結合したロ−ドモジュ−ル中で
のモジュ−ルM1乃至M3のエントリアドレス、を有す
るロケ−ション情報3を表している。
あり、 ・ダンプ情報2のプログラム情報22に出力されている
モジュ−ルM1、モジュ−ルM2およびモジュ−ルM3
それぞれのモジュ−ル名、 ・これらのモジュ−ルを結合したロ−ドモジュ−ル中で
のモジュ−ルM1乃至M3のエントリアドレス、を有す
るロケ−ション情報3を表している。
【0020】図4は、ソ−スコ−ド対応情報を示す説明
図であり、 ・コ−ディングしたソ−スステップであるソ−スコ−ド
31、 ・ソ−スステップをコンパイルしたときに展開される機
械命令または中間コ−ド32、 ・機械命令または中間コ−ド32の実行時の相対アドレ
ス、を有するソ−スコ−ド対応情報7を表している。
図であり、 ・コ−ディングしたソ−スステップであるソ−スコ−ド
31、 ・ソ−スステップをコンパイルしたときに展開される機
械命令または中間コ−ド32、 ・機械命令または中間コ−ド32の実行時の相対アドレ
ス、を有するソ−スコ−ド対応情報7を表している。
【0021】なお、機械命令または中間コ−ド32は一
つのソ−スステップに対して複数出力されるのが一般的
である。
つのソ−スステップに対して複数出力されるのが一般的
である。
【0022】図1の計算機1において、本運用中のロ−
ドモジュ−ルが異常終了すると、デバッガ部9の指示を
受けた抽出部4は、ロケ−ション情報3を参照しながら
異常終了したプログラム単位の機械命令または中間コ−
ドをダンプ情報2のプログラム情報22から抽出(図7
参照)して逆コンパイル部5に送る。なお、ダンプ情報
2にロケ−ション情報3が含まれている場合もある。
ドモジュ−ルが異常終了すると、デバッガ部9の指示を
受けた抽出部4は、ロケ−ション情報3を参照しながら
異常終了したプログラム単位の機械命令または中間コ−
ドをダンプ情報2のプログラム情報22から抽出(図7
参照)して逆コンパイル部5に送る。なお、ダンプ情報
2にロケ−ション情報3が含まれている場合もある。
【0023】逆コンパイル部5は、この機械命令または
中間コ−ドからソ−スコ−ドを生成して両者の対応関係
をメモリ部6に記憶する。なお、逆コンパイル部5にお
ける機械命令や中間コ−ドの情報が不足して逆コンパイ
ル部単独ではソ−スコ−ドを生成できない場合に、ソ−
スコ−ド対応情報7が参照される。
中間コ−ドからソ−スコ−ドを生成して両者の対応関係
をメモリ部6に記憶する。なお、逆コンパイル部5にお
ける機械命令や中間コ−ドの情報が不足して逆コンパイ
ル部単独ではソ−スコ−ドを生成できない場合に、ソ−
スコ−ド対応情報7が参照される。
【0024】デバッガ部9は、メモリ部6から読み出し
たソ−スコ−ド、抽出部4に指示して求めたデバッグ情
報(ダンプ情報2やロケ−ション情報3)、当該デバッ
グ情報中の異常終了関連情報(例えば異常終了時のPS
W、レジスタの内容)などを表示部10に送り、また、
デバッグ情報を編集して異常終了ステップを特定した上
でそのソ−スコ−ド部分を強調表示するための制御情報
を表示部10に送っている。
たソ−スコ−ド、抽出部4に指示して求めたデバッグ情
報(ダンプ情報2やロケ−ション情報3)、当該デバッ
グ情報中の異常終了関連情報(例えば異常終了時のPS
W、レジスタの内容)などを表示部10に送り、また、
デバッグ情報を編集して異常終了ステップを特定した上
でそのソ−スコ−ド部分を強調表示するための制御情報
を表示部10に送っている。
【0025】図5は、ダンプ情報からのデバッグ処理手
順を示す説明図であり、その内容は次のようになってい
る。 (11)利用者からの操作指示を待ち合わせる。 (12)操作指示が終了指示であるかどうかを判断し、「YE
S 」の場合は一連の処理を終了し、「NO」の場合は次の
ステップに進む。 (13)操作指示がモジュ−ル情報の出力指示であるかどう
かを判断し、「YES 」の場合は次のステップに進み、
「NO」の場合はステップ(20)に進む。 (14)異常終了したモジュ−ルを、システム情報21の異
常終了アドレスとロケ−ション情報3を用いて特定し
(図7参照)、次のステップに進む。 (15)特定モジュ−ルの機械命令または中間コ−ドを逆コ
ンパイルしてソ−スリストを生成し、これをメモリ部6
に格納して、次のステップに進む。 (16)異常終了アドレスに対応するソ−スコ−ドを抽出し
て(図7参照)、次のステップに進む。 (17)異常終了したモジュ−ルが使用しているスタック情
報を、異常終了時のレジスタ情報を用いて特定し、次の
ステップに進む。 (18)特定スタック情報に格納されている、呼び出し元お
よび呼び出し先のレジスタ情報ならびに呼び出し元およ
び呼び出し先への入出力情報(呼び出し情報)を抽出し
て、次のステップに進む。 (19)抽出したソ−スコ−ド、レジスタ情報および呼び出
し情報を編集して利用者の端末などに出力し(図7参
照)、ステップ(11)に戻る。 (20)利用者が指定したアドレス情報や、モジュ−ルの動
作軌跡のトレ−ス情報を編集して利用者の端末などに出
力し、ステップ(11)に戻る。
順を示す説明図であり、その内容は次のようになってい
る。 (11)利用者からの操作指示を待ち合わせる。 (12)操作指示が終了指示であるかどうかを判断し、「YE
S 」の場合は一連の処理を終了し、「NO」の場合は次の
ステップに進む。 (13)操作指示がモジュ−ル情報の出力指示であるかどう
かを判断し、「YES 」の場合は次のステップに進み、
「NO」の場合はステップ(20)に進む。 (14)異常終了したモジュ−ルを、システム情報21の異
常終了アドレスとロケ−ション情報3を用いて特定し
(図7参照)、次のステップに進む。 (15)特定モジュ−ルの機械命令または中間コ−ドを逆コ
ンパイルしてソ−スリストを生成し、これをメモリ部6
に格納して、次のステップに進む。 (16)異常終了アドレスに対応するソ−スコ−ドを抽出し
て(図7参照)、次のステップに進む。 (17)異常終了したモジュ−ルが使用しているスタック情
報を、異常終了時のレジスタ情報を用いて特定し、次の
ステップに進む。 (18)特定スタック情報に格納されている、呼び出し元お
よび呼び出し先のレジスタ情報ならびに呼び出し元およ
び呼び出し先への入出力情報(呼び出し情報)を抽出し
て、次のステップに進む。 (19)抽出したソ−スコ−ド、レジスタ情報および呼び出
し情報を編集して利用者の端末などに出力し(図7参
照)、ステップ(11)に戻る。 (20)利用者が指定したアドレス情報や、モジュ−ルの動
作軌跡のトレ−ス情報を編集して利用者の端末などに出
力し、ステップ(11)に戻る。
【0026】以上のデバッグ処理において、ステップ(1
5)の実行主体は逆コンパイル部5、それ以外の各ステッ
プの実行主体はデバッガ部9である。
5)の実行主体は逆コンパイル部5、それ以外の各ステッ
プの実行主体はデバッガ部9である。
【0027】図6および図7は、表示部の表示画面の全
体構成および表示例を示す説明図である。表示部10は
三つの表示画面41乃至43からなり、利用者はこれら
の表示画面を切り換えて表示内容を参照する。画面中の
矢印は表示情報が表示画面間で連携していることを表し
ている。
体構成および表示例を示す説明図である。表示部10は
三つの表示画面41乃至43からなり、利用者はこれら
の表示画面を切り換えて表示内容を参照する。画面中の
矢印は表示情報が表示画面間で連携していることを表し
ている。
【0028】各表示画面の中、 ・表示画面41はソ−スコ−ド表示域41aと異常終了
関連情報表示域41bを有し、 ・表示画面42は呼び出し関係表示域42aとロケ−シ
ョン情報表示域42bを有し、 ・表示画面43はダンプ情報表示域43aを有し、表示
域のそれぞれにはスクロ−ル用の上下左右方向の矢印
(図示省略)が設定されている。
関連情報表示域41bを有し、 ・表示画面42は呼び出し関係表示域42aとロケ−シ
ョン情報表示域42bを有し、 ・表示画面43はダンプ情報表示域43aを有し、表示
域のそれぞれにはスクロ−ル用の上下左右方向の矢印
(図示省略)が設定されている。
【0029】ソ−スコ−ド表示域41aには、ダンプ情
報から逆コンパイルされたソ−スコ−ドを表示し、実行
中のソ−スステップ部分は色付けまたは高輝度で強調表
示している。
報から逆コンパイルされたソ−スコ−ドを表示し、実行
中のソ−スステップ部分は色付けまたは高輝度で強調表
示している。
【0030】異常終了関連情報表示域41bには、異常
終了時のPSW、レジスタの内容やソ−スコ−ド表示域
41aでクリック入力された部分の内容を表示してい
る。
終了時のPSW、レジスタの内容やソ−スコ−ド表示域
41aでクリック入力された部分の内容を表示してい
る。
【0031】呼び出し関係表示域42aには、モジュ−
ル間の呼び出し関係を階層化して表示している。この表
示域の(現在、ソ−スコ−ド表示域41aに表示されて
いない)モジュ−ル名部分をクリック入力すれば、当該
モジュ−ルのソ−スコ−ドをソ−スコ−ド表示域41a
で参照できる。この場合、参照に先立って、クリック入
力により指定されたモジュ−ルについて前述の逆コンパ
イルが実行される。
ル間の呼び出し関係を階層化して表示している。この表
示域の(現在、ソ−スコ−ド表示域41aに表示されて
いない)モジュ−ル名部分をクリック入力すれば、当該
モジュ−ルのソ−スコ−ドをソ−スコ−ド表示域41a
で参照できる。この場合、参照に先立って、クリック入
力により指定されたモジュ−ルについて前述の逆コンパ
イルが実行される。
【0032】ロケ−ション情報表示域42bには、複数
のモジュ−ルを結合編集してロ−ドモジュ−ルを作成し
た場合の、各モジュ−ルの相対位置を表示している。こ
の表示域のモジュ−ル名部分をクリック入力すれば、当
該モジュ−ルのダンプ情報をダンプ情報表示域43aで
参照できる。
のモジュ−ルを結合編集してロ−ドモジュ−ルを作成し
た場合の、各モジュ−ルの相対位置を表示している。こ
の表示域のモジュ−ル名部分をクリック入力すれば、当
該モジュ−ルのダンプ情報をダンプ情報表示域43aで
参照できる。
【0033】ダンプ情報表示域43aには、ダンプ情報
の内容をそのまま表示しており、システム情報などを参
照する場合に利用される。
の内容をそのまま表示しており、システム情報などを参
照する場合に利用される。
【0034】図7の表示例は、概略、 ・アドレス〔00100152〕で異常終了したこと
(異常終了関連情報表示域41b)、 ・異常終了アドレス〔00100152〕で実行してい
たソ−スコ−ドがモジュ−ルM2の「*p=1234」
であり、当該ソ−スコ−ドはアドレス形式により指定し
た整数pの領域に〔1234〕を設定する内容であるこ
と(ソ−スコ−ド表示域41a)、 ・実行したロ−ドモジュ−ルは、メモリ上に先頭アドレ
ス〔00100000〕で展開されていること(ダンプ
情報表示域43a)、 ・実行したロ−ドモジュ−ルはモジュ−ルM1,M2お
よびM3からなり、ロ−ドモジュ−ル内でのモジュ−ル
M2の先頭アドレスは〔00000100〕であるこ
と、また、モジュ−ルM1がモジュ−ルM2を呼び出し
ていること(ロケ−ション情報表示域42bおよび呼び
出し関係表示域42a)、をそれぞれ示している。
(異常終了関連情報表示域41b)、 ・異常終了アドレス〔00100152〕で実行してい
たソ−スコ−ドがモジュ−ルM2の「*p=1234」
であり、当該ソ−スコ−ドはアドレス形式により指定し
た整数pの領域に〔1234〕を設定する内容であるこ
と(ソ−スコ−ド表示域41a)、 ・実行したロ−ドモジュ−ルは、メモリ上に先頭アドレ
ス〔00100000〕で展開されていること(ダンプ
情報表示域43a)、 ・実行したロ−ドモジュ−ルはモジュ−ルM1,M2お
よびM3からなり、ロ−ドモジュ−ル内でのモジュ−ル
M2の先頭アドレスは〔00000100〕であるこ
と、また、モジュ−ルM1がモジュ−ルM2を呼び出し
ていること(ロケ−ション情報表示域42bおよび呼び
出し関係表示域42a)、をそれぞれ示している。
【0035】図1のデバッグツ−ルの起動時、以下の処
理を自動的に実行して図7の表示画面を出力することに
より利用者の利便性を高めている。 ファイルに格納されたダンプ情報2から、ロ−ドモジ
ュ−ルがメモリ上にロ−ドされた先頭アドレスが〔00
100000〕であり、また、異常終了時のPSWが
〔00100152〕であることを確認する。 ロ−ドモジュ−ル上での異常終了相対アドレス〔00
000152〕を算出する。 ロケ−ション情報3から、異常終了相対アドレスがモ
ジュ−ルM2であることを確認する。 ロ−ドモジュ−ル中のモジュ−ルM2を先頭アドレス
〔00100100〕から逆コンパイルする。 異常終了時のPSWやレジスタ情報、および逆コンパ
イルにより生成したソ−スコ−ドを画面表示する。この
とき、異常終了ステップに対応のソ−スコ−ド部分を強
調表示している。 ダンプ情報2それ自体やその中のモジュ−ル間の呼び
出し情報、およびロケ−ション情報を画面表示する。
理を自動的に実行して図7の表示画面を出力することに
より利用者の利便性を高めている。 ファイルに格納されたダンプ情報2から、ロ−ドモジ
ュ−ルがメモリ上にロ−ドされた先頭アドレスが〔00
100000〕であり、また、異常終了時のPSWが
〔00100152〕であることを確認する。 ロ−ドモジュ−ル上での異常終了相対アドレス〔00
000152〕を算出する。 ロケ−ション情報3から、異常終了相対アドレスがモ
ジュ−ルM2であることを確認する。 ロ−ドモジュ−ル中のモジュ−ルM2を先頭アドレス
〔00100100〕から逆コンパイルする。 異常終了時のPSWやレジスタ情報、および逆コンパ
イルにより生成したソ−スコ−ドを画面表示する。この
とき、異常終了ステップに対応のソ−スコ−ド部分を強
調表示している。 ダンプ情報2それ自体やその中のモジュ−ル間の呼び
出し情報、およびロケ−ション情報を画面表示する。
【0036】表示画面41を見た利用者は、*pの内容
がおかしいと容易に分かるので、ソ−スコ−ド表示域4
1aの「*p」の部分をクリック入力してその内容を異
常終了関連情報表示域41bに表示させる。また、ソ−
スコ−ド表示域41aの「void M2(int*
p)」から、モジュ−ルM2が「*p」を入力情報とし
て受け取ることが分かる。
がおかしいと容易に分かるので、ソ−スコ−ド表示域4
1aの「*p」の部分をクリック入力してその内容を異
常終了関連情報表示域41bに表示させる。また、ソ−
スコ−ド表示域41aの「void M2(int*
p)」から、モジュ−ルM2が「*p」を入力情報とし
て受け取ることが分かる。
【0037】ここで、モジュ−ルM2が「*p」をすで
に受け取って用意済の場合にはこのクリック入力に基づ
く表示内容の段階で異常終了の原因を究明することが可
能となる。
に受け取って用意済の場合にはこのクリック入力に基づ
く表示内容の段階で異常終了の原因を究明することが可
能となる。
【0038】一方、モジュ−ルM2に「*p」が用意さ
れていない場合、利用者は、モジュ−ルM2の呼び出し
元であるモジュ−ルM1からの呼び出し情報が正しく設
定されているかどうかを確認するため、当該モジュ−ル
のソ−スプログラムを参照する必要がでてくる。なお、
モジュ−ルM1とモジュ−ルM2との呼び出し関係は表
示画面42で知ることができる。
れていない場合、利用者は、モジュ−ルM2の呼び出し
元であるモジュ−ルM1からの呼び出し情報が正しく設
定されているかどうかを確認するため、当該モジュ−ル
のソ−スプログラムを参照する必要がでてくる。なお、
モジュ−ルM1とモジュ−ルM2との呼び出し関係は表
示画面42で知ることができる。
【0039】モジュ−ルM1のソ−スプログラムを参照
するには、呼び出し関係表示域42aの「M1」の部分
をクリック入力すればよい。
するには、呼び出し関係表示域42aの「M1」の部分
をクリック入力すればよい。
【0040】このクリック入力により、デバッグツ−ル
は、ダンプ情報2からモジュ−ルM1の機械命令または
中間コ−ドを抽出してモジュ−ルM2のときと同じよう
に逆コンパイルし、モジュ−ルM1のソ−スコ−ドの内
容を表示画面41のソ−スコ−ド表示域41aに表示す
る。
は、ダンプ情報2からモジュ−ルM1の機械命令または
中間コ−ドを抽出してモジュ−ルM2のときと同じよう
に逆コンパイルし、モジュ−ルM1のソ−スコ−ドの内
容を表示画面41のソ−スコ−ド表示域41aに表示す
る。
【0041】このとき、ダンプ情報2のスタック情報2
3などから、モジュ−ルM2を呼び出したときのモジュ
−ルM1への戻りアドレス(相対アドレス)を確認し
て、この戻りアドレスに対応のソ−スコ−ドの内容表示
部分を色付け表示する。
3などから、モジュ−ルM2を呼び出したときのモジュ
−ルM1への戻りアドレス(相対アドレス)を確認し
て、この戻りアドレスに対応のソ−スコ−ドの内容表示
部分を色付け表示する。
【0042】このソ−スコ−ドの前に「*p」の処理が
実行されているはずであるから、利用者は、当該ソ−ス
コ−ドからさかのぼって異常終了の原因を究明する。
実行されているはずであるから、利用者は、当該ソ−ス
コ−ドからさかのぼって異常終了の原因を究明する。
【0043】図8は、コンピュ−タ読み取り可能な記録
媒体からプログラムを読み取って実行するコンピュ−タ
システムの概要を示す説明図であり、51はコンピュ−
タシステム、52はCPUやディスクドライブ装置など
を内蔵した本体部、53は本体部52からの指示により
画像を表示するディスプレイ、54は表示画面、55は
コンピュ−タシステム51に種々の情報を入力するため
のキ−ボ−ド、56は表示画面54上の任意の位置を指
定するマウス、57は外部のデ−タベ−ス(DASDな
どの回線先メモリ)、58は外部のデ−タベ−ス57に
アクセスするモデム、59はCD−ROMやフロッピ−
ディスクなどの可搬型記憶媒体をそれぞれ示している。
媒体からプログラムを読み取って実行するコンピュ−タ
システムの概要を示す説明図であり、51はコンピュ−
タシステム、52はCPUやディスクドライブ装置など
を内蔵した本体部、53は本体部52からの指示により
画像を表示するディスプレイ、54は表示画面、55は
コンピュ−タシステム51に種々の情報を入力するため
のキ−ボ−ド、56は表示画面54上の任意の位置を指
定するマウス、57は外部のデ−タベ−ス(DASDな
どの回線先メモリ)、58は外部のデ−タベ−ス57に
アクセスするモデム、59はCD−ROMやフロッピ−
ディスクなどの可搬型記憶媒体をそれぞれ示している。
【0044】プログラムを格納する記憶媒体としては、 ・プログラム提供者側のデ−タベ−ス57(回線先メモ
リ) ・可搬型記憶媒体59 ・本体部52側のメモリ などのいずれでもよく、当該プログラムは本体部52に
ロ−デイングされてその主メモリ上で実行される。
リ) ・可搬型記憶媒体59 ・本体部52側のメモリ などのいずれでもよく、当該プログラムは本体部52に
ロ−デイングされてその主メモリ上で実行される。
【0045】
【発明の効果】本発明は、このように、ダンプ情報から
抽出した異常発生プログラム情報をソ−スコ−ドに逆コ
ンパイルして表示し、また、ダンプ情報から異常発生ス
テップのアドレスやモジュ−ル間の呼び出し情報などの
デバッグ情報を抽出して表示するものとしているので、
本来のソ−スコ−ドの参照を期待できないプログラムに
対するデバッグ作業の簡単化、効率化を図ることができ
る。
抽出した異常発生プログラム情報をソ−スコ−ドに逆コ
ンパイルして表示し、また、ダンプ情報から異常発生ス
テップのアドレスやモジュ−ル間の呼び出し情報などの
デバッグ情報を抽出して表示するものとしているので、
本来のソ−スコ−ドの参照を期待できないプログラムに
対するデバッグ作業の簡単化、効率化を図ることができ
る。
【図1】本発明の、デバッグシステムの概要を示す説明
図である。
図である。
【図2】本発明の、ダンプ情報を示す説明図である。
【図3】本発明の、ロケ−ション情報を示す説明図であ
る。
る。
【図4】本発明の、ソ−スコ−ド対応情報を示す説明図
である。
である。
【図5】本発明の、ダンプ情報からのデバッグ処理手順
を示す説明図である。
を示す説明図である。
【図6】本発明の、表示画面の全体構成を示す説明図で
ある。
ある。
【図7】本発明の、表示画面の表示例を示す説明図であ
る。
る。
【図8】本発明の、コンピュ−タ読み取り可能な記録媒
体からプログラムを読み取って実行するコンピュ−タシ
ステムの概要を示す説明図である。
体からプログラムを読み取って実行するコンピュ−タシ
ステムの概要を示す説明図である。
【符号の説明】 1:逆コンパイル機能を備えた計算機 2:本運用中に発生したダンプ情報 3:ロケ−ション情報 4:抽出部 5:逆コンパイル部 6:メモリ部 7:ソ−スコ−ド対応情報 8:入力部 9:デバッガ部 10:表示部 21:システム情報 22:プログラム情報 23:スタック情報 24:トレ−ス情報 31:ソ−スコ−ド 32:機械命令または中間コ−ド 41乃至43:表示画面 41a:ソ−スコ−ド表示域 41b:異常終了関連情報表示域 42a:呼び出し関係表示域 42b:ロケ−ション情報表示域 43a:ダンプ情報表示域 51:コンピュ−タシステム 52:本体部 53:ディスプレイ 54:表示画面 55:キ−ボ−ド 56:マウス 57:外部のデ−タベ−ス(DASDなどの回線先メモ
リ) 58:外部のデ−タベ−スにアクセスするモデム 59:CD−ROMやフロッピ−ディスクなどの可搬型
記憶媒体
リ) 58:外部のデ−タベ−スにアクセスするモデム 59:CD−ROMやフロッピ−ディスクなどの可搬型
記憶媒体
Claims (9)
- 【請求項1】 プログラム走行時の異常発生にともなう
ダンプ情報を用いることによりプログラムの異常発生原
因を探究するデバッグ方法において、 前記ダンプ情報から異常発生プログラム情報を抽出して
逆コンパイルし、 この逆コンパイルで生成されるソ−スコ−ドの内容を表
示する、ようにしたことを特徴とするデバッグ方法。 - 【請求項2】 前記ダンプ情報から異常発生ステップの
アドレスを抽出して当該ステップに対応のソ−スコ−ド
を特定し、この特定ソ−スコ−ドの内容を強調表示する
ことを特徴とする請求項1記載のデバッグ方法。 - 【請求項3】 前記アドレスを抽出する際に、複数のプ
ログラムを結合編集したロ−ドモジュ−ルにおける各プ
ログラムのエントリ−アドレスを示すロケ−ション情報
を参照することを特徴とする請求項2記載のデバッグ方
法。 - 【請求項4】 前記ダンプ情報から任意のデバッグ情報
を抽出して表示することを特徴とする請求項1乃至3記
載のデバッグ方法。 - 【請求項5】 プログラム走行時の異常発生にともなう
ダンプ情報を用いることによりプログラムの異常発生原
因を探究するデバッグ装置において、 前記ダンプ情報から、少なくとも異常が発生したプログ
ラム情報を抽出する抽出部と、 当該プログラム情報を逆コンパイルしてそのソ−スコ−
ドを生成する逆コンパイル部と、 この逆コンパイル部で生成されるソ−スコ−ドの内容を
少なくとも表示する表示部と、 前記ソ−スコ−ドの取込み機能、前記抽出部に対する入
出力機能、および前記表示部に対する出力機能を有する
デバッガ部、を備えたことを特徴とするデバッグ装置。 - 【請求項6】 前記抽出部は、前記ダンプ情報から異常
発生ステップのアドレスを抽出し、 前記デバッガ部は、前記アドレスに基づいて異常発生ス
テップに対応のソ−スコ−ドを特定し、前記表示部にこ
の特定ソ−スコ−ドの内容を強調表示させることを特徴
とする請求項5記載のデバッグ装置。 - 【請求項7】 前記抽出部は、前記アドレスを抽出する
際に、複数のプログラムを結合編集したロ−ドモジュ−
ルにおける各プログラムのエントリ−アドレスを示すロ
ケ−ション情報を参照することを特徴とする請求項6記
載のデバッグ装置。 - 【請求項8】 前記抽出部は、前記ダンプ情報から任意
のデバッグ情報を抽出し、 前記デバッガ部は、前記表示部に当該デバッグ情報を表
示させることを特徴とする請求項5乃至7記載のデバッ
グ装置。 - 【請求項9】 プログラム走行時の異常発生にともなう
ダンプ情報を用いることによりプログラムの異常発生原
因を探究するデバッグのときに用いられ、 前記ダンプ情報から異常発生プログラム情報を抽出して
逆コンパイルし、 この逆コンパイルで生成されるソ−スコ−ドの内容を表
示する、機能をコンピュ−タに実現させるためのプログ
ラムを格納したことを特徴とするコンピュ−タ読み取り
可能なプログラム記憶媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP10072350A JPH11272500A (ja) | 1998-03-20 | 1998-03-20 | デバッグ方法ならびにそのためのデバッグ装置およびプログラム記憶媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP10072350A JPH11272500A (ja) | 1998-03-20 | 1998-03-20 | デバッグ方法ならびにそのためのデバッグ装置およびプログラム記憶媒体 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH11272500A true JPH11272500A (ja) | 1999-10-08 |
Family
ID=13486783
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP10072350A Withdrawn JPH11272500A (ja) | 1998-03-20 | 1998-03-20 | デバッグ方法ならびにそのためのデバッグ装置およびプログラム記憶媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH11272500A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009283016A (ja) * | 2009-09-02 | 2009-12-03 | Fuji Soft Inc | 組込機器向けのコンパクトコアダンププログラム及びコンパクトコアダンプを用いた方法 |
-
1998
- 1998-03-20 JP JP10072350A patent/JPH11272500A/ja not_active Withdrawn
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009283016A (ja) * | 2009-09-02 | 2009-12-03 | Fuji Soft Inc | 組込機器向けのコンパクトコアダンププログラム及びコンパクトコアダンプを用いた方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2795244B2 (ja) | プログラムデバッグシステム | |
CN108228173B (zh) | 一种可视化的数据接口开发系统和方法 | |
JPH0766342B2 (ja) | プログラムテスト装置 | |
JP2010287101A (ja) | ソフトウエアデバッグ装置及び方法 | |
JP3196675B2 (ja) | 言語処理方式 | |
JPH11272500A (ja) | デバッグ方法ならびにそのためのデバッグ装置およびプログラム記憶媒体 | |
JP2007226685A (ja) | アプリケーションメンテナンス支援装置、アプリケーション生成装置、アプリケーションメンテナンス支援方法、およびコンピュータプログラム | |
JP4925514B2 (ja) | 内外イベントドリブン方式によるプログラム実行制御方法、プログラム、実行制御装置および記録媒体 | |
JP2000207246A (ja) | デバッグ支援装置及び方法並びにデバッグ支援用ソフトウェアを記録した記録媒体 | |
JP2672968B2 (ja) | デバッグ用ソースリスト出力処理方式 | |
JP2004078375A (ja) | 情報処理装置および帳票処理方法およびコンピュータが読み取り可能な記憶媒体およびプログラム | |
JP3113048B2 (ja) | ソフトウェア部品合成装置 | |
JP2000353112A (ja) | 中間言語レベルのデバッグ方法及びシステム | |
JPS62145424A (ja) | プログラム管理方法 | |
JPS6033640A (ja) | デ−タ・モニタ方式 | |
JP2001344128A (ja) | 逆アセンブル表示アドレスの設定方法および記録媒体 | |
JP4458491B2 (ja) | テストコマンドファイル作成システムと方法およびプログラム | |
JPH01273144A (ja) | ソフトウエア開発支援装置 | |
JP2001027946A (ja) | 対話型プログラムシステムの画面情報出力方法 | |
JPH0895761A (ja) | プログラム生産支援装置 | |
JPH08255097A (ja) | デバッグ情報出力方式 | |
JP2006350676A (ja) | 組込みシステムのプログラムデバッグ方法 | |
JPH0887403A (ja) | プログラム開発支援装置 | |
JPH06231003A (ja) | 実行可能ファイルのデバッガ | |
JPH07311692A (ja) | デバッグ方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20050607 |