JPH0264748A - 関数トレース処理方式 - Google Patents

関数トレース処理方式

Info

Publication number
JPH0264748A
JPH0264748A JP63215915A JP21591588A JPH0264748A JP H0264748 A JPH0264748 A JP H0264748A JP 63215915 A JP63215915 A JP 63215915A JP 21591588 A JP21591588 A JP 21591588A JP H0264748 A JPH0264748 A JP H0264748A
Authority
JP
Japan
Prior art keywords
function
module
program
information
trace
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
Application number
JP63215915A
Other languages
English (en)
Other versions
JPH0833847B2 (ja
Inventor
Yuichi Ueda
裕一 上田
Yutaka Watanabe
豊 渡邊
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 JP63215915A priority Critical patent/JPH0833847B2/ja
Publication of JPH0264748A publication Critical patent/JPH0264748A/ja
Publication of JPH0833847B2 publication Critical patent/JPH0833847B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔概要〕 デバッグ対象プログラムの実行制御を行い、デバッグ情
報を出力するデバッグシステムにおける関数トレース処
理方式に関し。
関数単位やモジュール単位でのトレースを可能とし、効
率的にデバッグ対象プログラムの6動作試験を行うこと
ができるようにすることを目的Σし。
デバッグ対象プログラムの構成情報およびソ−スモジュ
ールごとに定義されている関数情報を記憶するプログラ
ム構成情報記憶部と、このプログラム構成情報記憶部が
記憶する構成情報および関数情報に基づいて、デバッグ
対象プログラム中の各関数にブレークポイントを設定す
る関数トレース制御部と、デバッグ対象プログラムの実
行中断時に、プログラム構成情報記憶部が記憶する構成
情報および関数情報に基づき、関数情報付きのモジュー
ル構成図を表示するとともに、実行中断に係る関数情報
を他と異なる態様で表示するモジュール構成表示制御部
とを備え、関数単位またはモジュール単位でトレースを
行うように構成する。
[産業上の利用分野〕 本発明は、デバッグ対象プログラムの実行制御を行い、
デバッグ情報を出力するデバッグシステムにおける関数
トレース処理方式に関する。
開発したプログラムの信頼性を向上させるため。
そのプログラムが正常に動作するかどうかをテストする
ことは重要であり、そのデバッグに要する時間も2年々
増加する傾向にある。そのため、効率のよいデバッグを
行うことができるツールが必要とされている。
〔従来の技術〕
従来、デバッグのためのツールとして、ソースレベルで
デバッグするものや1機械語レベルでデバッグするもの
など、各種のデバッグシステムが用いられている。この
ようなデバッグシステムにより、デバッグ対象プログラ
ムの実行状況をトレースすることが行われる。
しかし、従来のデバッグシステムでは、モジュールの構
成図を表示し、さらに、その図上に各モジュールで定義
された関数も表示しながら、関数単位やモジュール単位
でトレース状況を見せたり実行制御を行ったりすること
はできなかった。そのため、従来方式によれば、ソース
プログラムの1ステン−ブずつ、もしくは機械語の1命
令ずつトレースするか、または、利用者が、プログラム
中の必要な個所に実行を中断させるためのブレークポイ
ントを設定して、その設定したブレークポイントに従っ
てトレースを行わなければならなかワた。
〔発明が解決しようとする課題〕
プログラムをデバッグする場合1例えば最初は。
ソースプログラムのステップ単位で細かくトレースして
いくことが必要となるが、ある程度、正常に動作するこ
とを確認した後は、細かいトレースについては1部分的
に行い、大部分については。
大まかなトレースによって、効率よ(デバッグすること
が必要となる。
このような場合に、特に関数単位やモジュール単位で、
簡単にトレースすることができれば9便利であると考え
られる。さらに、関数単位やモジュール単位でトレース
する場合、各関数がどのモジュールで定義されているか
とか、各モジュールの関係はどうなっているかなどを、
トレース中に簡単に把握することができれば、非常に有
効であると考えられる。
しかし、従来のデバッグシステム(デバッガ)では、プ
ログラムを構成する各モジュールの関係を記述したモジ
ュール構成情報や、各モジュールで定義された関数の情
報を持たないため、細かいソースレベルまたは機械語レ
ベルで、トレースすることはできても、関数単位やモジ
ュール単位での大まかなデバッグを、効率よく行うこと
はできないという問題があった。
もし、関数単位やモジュール単位でトレースを行おうと
すると1人間がソースプログラムリストを調べて、関数
のアドレス等を抽出し、1つ1つブレークポイントを設
定して、デバッグ対象プログラムの実行を中断させるよ
うにしなければならないので、そのブレークポイントの
設定に、非常に時間がかかるという問題があった。
また、その際に、ある関数がどのモジュールで定義され
ているとか、各モジュールの構成がどのようになってい
るかなどを知るためには、プログラムの設計ドキュメン
トなどを、デバッグ中に参照しなければならず、そのた
めの作業が煩雑であるという問題があった。
本発明は上記問題点の解決を図り1間数単位やモジュー
ル単位でのトレースを可能とし、効率的にデバッグ対象
プログラムの動作試験を行うことができるようにすると
ともに、モジュール構成等を容易に把握できるようにす
ることを目的としている。
〔課題を解決するための手段〕
第1図は本発明の構成例を示す。
第1図において、10はCPUおよびメモリ等からなる
処理装置、11はモジュール構成情報およびモジュール
別関数情報を記憶するプログラム構成情報記憶部、12
ばデバッグ機能を提供するデバッガ、13は関数トレー
ス制御部、14は中断判定制御部、15はモジュール構
成表示制御部。
16は動作試験の対象となるデバッグ対象プログラム、
17はプログラム構成情報が格納されたプログラム構成
情報ファイル、18はデバッグ対象プログラム16のロ
ードモジュールが格納されたロードモジュールファイル
、19はキーボードやマウス等の人力装置、20はデイ
スプレィ装置。
21はデバッグ対象プログラム16のモジュール構成を
示すモジュール構成図を表す。
プログラム構成情報ファイル17は、ソースプログラム
の作成時およびその翻訳・結合時に作成されるファイル
であり、プログラムのモジュール構成や、どのような関
数がどのモジュールで定義されているかを示すモジュー
ル別の関数情報が格納されているファイルである。
デバッガ12の起動時に、デバッグ対象プログラム16
のプログラム名が指定されると、プログラム構成情報フ
ァイル17の内容が、プログラム構成情報記憶部11に
読み出されるとともに、ロードモジュールファイル18
からデバッグ対象プログラム16のローディングが行わ
れる。
関数トレース制御部13は、プログラム構成情報記憶部
11に記憶されている情報に基づいて。
デバッグ対象プログラム16中の各関数の先頭に。
自動的にブレークポイントを設定する処理を行うもので
ある。ブレークポイントを設定した後、デバッグ対象プ
ログラム16を実行させると、各関数の先頭で実行が中
断し、関数トレース制御部13に制御が渡されることに
なる。
関数トレース制御部13は、デバッグ対象プログラム1
6の実行中断により、制御が渡されると。
モジュール構成表示制御部15を呼び出す、モジュール
構成表示制御部15は、プログラム構成情報記憶部11
に記憶されている情報に基づいて。
デイスプレィ装置20に、関数情報付きのモジュール構
成図21を表示するとともに、そのモジュール構成図2
1において、実行中断に係る関数情報を1反転1色の変
更、網かけ、または矢印表示等により、他の関数と区別
できる態様で表示する処理を行うものである。モジュー
ル構成図21には、デバッグ対象プログラム16に係る
ソースモジュールの階層情報および各モジュールで定義
されている関数名の情報が含まれる。
第1図に示すモジュール構成図21では、現在。
トレースされている関数の名前は、mainである。モ
ジュール構成図21の表示状態で、入力装置19から“
実行”の指示があると、関数トレース制御部13は、関
数maiれから実行を再開し次に実行される関数の先頭
に設定されたブレークポイントにくると、そのブレーク
ポイントから再び制御を得る。以下、同様に関数単位で
トレース制御を行う。
デバッグ対象プログラム16のすべての関数で。
実行を中断させて、モジュール構成図21をli示する
のではなく、マウス等によって指定された関数が実行さ
れるときだけ、デバッグ対象プログラム16の実行を停
止させるようにすることもできる。そのため、関数トレ
ース制御部13は、中断判定制御部14を持つ。
中断判定制御部14は、モジュール構成図21において
指定された関数を記憶しておき、デバッグ対象プログラ
ム16に設定したブレークポイントから制御が渡された
ときに、その中断個所が。
指定された関数であるかどうかを判定する。指定された
関数でない場合、そのままデバッグ対象ブログラム16
に実行制御を戻し1表面上、実行中断が起きなかったよ
うに見せる。中断個所が指定された関数であれば、モジ
ュール構成表示制御部15を呼び出し、モジュール構成
図21を表示して、入力装置19からの入力を待つ。
(作用〕 本発明では、デバツガ12の処理機能の1つとして、関
数トレース制御部13が設けられ、プログラム構成情報
記憶部11に記憶されているモジュール構成情報および
モジュール別関数情報を使って、関数単位やモジエール
単位によるトレースが可能となっている。これにより、
大まかなトレースができる。なお、必要な場合には、実
行中断時に、メニュー等により、従来のソースレベルま
たは機械語レベルのデバッグ処理機能を、呼び出すこと
ができるようになワている。
モジュール構成表示制御部15により、デイスプレィ装
置20の画面に、モジュール構成図21が表示されるの
で、デバッグ中にモジュール構成および実行中の関数を
常に把握することができる。
〔実施例〕
第2図は本発明の一実施例に係るプログラム構成情報の
例、第3図は本発明の一実施例に係るモジュール構成表
示の例、第4図は本発明の一実施例に係る処理説明図を
示す。
本実施例では、第1図に示すプログラム構成情報記憶部
11において、プログラム構成情報を。
第2図(イ)に示す構造により管理する。
フィールド30は、デバッグ対象プログラム16のプロ
グラム名を記憶する。そして、ポインタ31から、先頭
のモジュール情報をポイントする。
各モジュール情報の記憶部は、モジュール名のフィール
ド32と、同レベルの兄弟モジュールへのポインタ33
と、下位レベルの子モジュールへのポインタ34と、関
数名リスト4oへのポインタ35とを持つ、関数名リス
ト4oは、各モジュールで定義されている関数名の一覧
表である。
例えば、デバッグ対象プログラムのプログラム名が“t
est”であり、そのプログラムが、主となるソースモ
ジエール′″main、c″と、副となる2つのソース
モジュール″5ubl、cおよび“5ub2.c”とか
ら構成されているとする。また、ソースモジュール“m
ain、c”の中で、関数“main”とerror”
が定義され、ソースモジュール“5ubl、c’の中で
、関数“5ubx″と“5uby”が定義されソースモ
ジュール″5ub2.c”の中で、関数5ubz”が定
義されているとする。
このときのプログラム構成情報は、第2図(イ)に示す
形式によって、第2図(ロ)に示すような木構造になる
。すなわち、“main、c“から。
5ubl、c″および”5ub2.c”を連鎖的にポイ
ントし、各々関数名リスト40をポイントする。
第1図に示すモジュール構成表示制御部15は。
実行中断時に、第2図(ロ)に示すようなプログラム構
成情報により1例えば第3図に示すようなモジュール構
成図21を表示する。
プログラムを構成するモジュールの関係が、すぐにわか
るように、モジュール間の親子関係を。
引き出し線を使って表す。また、各モジュールに対して
、その中で定義されている関数を並べて表示する。
また、現在、ブレークポイントによって実行が中断して
いる関数を1反転表示51により1表示する。この例で
は、モジュール“5ub1.c中の関数“5ubx”の
先頭で実行が中断している。なお、モジュール構成をブ
ロック図のような形式で表してもよい、また、実行中断
の関数を。
反転表示51ではなく、網かけ表示、ブリンク表示等に
より表してもよい。
本実施例では、さらに第3図に示すマウス・カーソル5
2を用いて、モジュール構成図21上で特定の関数を指
示し、マウス・ボタンを操作することにより、その特定
の関数だけで、実行を停止させることもできるようにな
っている。
第4図は1本発明の一実施例に係る処理の流れを示して
いる。以下の説明におけるΦ〜0は、第4図に示す処理
Φ〜[相]に対応する。
■ デバッガ12によって、関数トレース制御部13が
起動されると、ディスク記憶装置等に設けられたプログ
ラム構成情報ファイル17から。
モジュール構成と関数の情報を取り出し、プログラム構
成情報記憶部11に設定する。
■ 次に、ロードモジュールファイル18からデバッグ
対象プログラム16をロードし、プログラム構成情報記
憶部11に記憶されている情報に従って、デバッグ対象
プログラム16における各関数の先頭にブレークポイン
トを設定する。
ブレークポイントの設定は1例えば命令を書き換えるこ
とによって行う、各関数のアドレスは。
ロードモジュールファイル18中のシンボル情報テーブ
ルから得ることができる。ブレークポイントの設定後、
デバッグ対象プログラム16を起動実行する。
■ 最初は、メイン関数の先頭に設定したブレークポイ
ントでストップすることになる。関数トレース制御部1
3に制御nが戻されたならば、中断判定制御部14によ
り、中断すべき関数の指定がなされているかどうかを判
定する。1回目は、中断関数の指定がないので、処理■
へ移る。
2回目以降で中断関数の指定がある場合には。
処理■の判定を行う。ここで、中断関数は、オペレータ
が特別に実行中断を指示した関数を意味する。
■ 現在、実行がストップした関数が、オペレータが指
示した中断関数であるかどうかを中断アドレス等により
9判定する。中断関数でない場合、処理■へ移る。中断
関数のときは、処理■へ移る。
■ プログラム構成情報記憶部11に記憶されている情
報に基づき、第3図に示すようなモジュール構成図21
を編集して5デイスプレイ装置に表示する。特に、現在
実行がストップしている関数については9反転表示を行
い、実行の停止中を表す矢印を先頭に付加する。そして
、現在実行がストップしている関数を中断関数の登録か
ら削除する。その後、キーボードまたはマウス等からの
入力を待つ。
■ 入力があったならば、その入力の解析を行う。
マウス・ボタンのクリックにより、中断間[指定するマ
ウス入力があった場合、処理■へ移る。実行キーが打鍵
された場合、処理■へ移る。
終了キー等による終了指示があった場合、処理[相]へ
移る。なお2図示省略するが、このときメニュー等によ
り、関数トレースから従来の細がいステップ単位のトレ
ースへの移行指示等があった場合には、これまでのブレ
ークポイントの設定を必要に応じて解除し、従来と同様
なトレース制御に移行する。
■ マウス入力があったならば、そのときのマウス・カ
ーソルの座標か−ら、モジュール構成図21において、
指定された関数を検索し、その関数を中断関数として登
録し、処理■へ移る。
■ デバッグ対象プログラム16に実行制御を戻し8次
に現れる間数のブレークポイントまで。
プログラムを実行させる。
■ デバッグ対象プログラム16の実行がストップした
場合、処理■以下を実行し、ブレークポイントによるス
トップがなかった場合、処理0へ移る。
[相] デバッグ対象プログラム16の実行終了処理を
行い、デバッグを終了する。
〔発明の効果〕
以上説明したように2本発明によれば、従来の細かいス
テップ単位のトレース機能に加え、関数単位やモジュー
ル単位の大まかなトレース機能を利用することができる
。また、デイスプレィにモジュール構成図を表示し、そ
の上でトレース状況を表示したり、実行の制御ができる
ようになっているため、絶えずプログラムを構成する各
モジュールが、どのような関係を持っているかを把握す
ることができる。ざらに、従来のように1つ1つブレー
クポイントを設定する必要はなく、マウス等で指定され
た関数や、実行キーの押下によって。
次に実行される関数までトレースすることができるので
、効率的にデバッグ作業を進めることができるようにな
る。
【図面の簡単な説明】
第1図は本発明の構成例。 第2図は本発明の一実施例に係るプログラム構成情報の
例。 第3図は本発明の一実施例に係るモジュール構成表示の
例。 第4図は本発明の一実施例に係る処理説明図を示す。 図中、10は処理装置、11はプログラム構成情報記憶
部、12はデバッガ、13は関数トレース制御部、14
は中断判定制御部、15はモジュール構成表示制御部、
16はデバッグ対象プログラム、17はプログラム構成
情報ファイル、18はロードモジュールファイル、19
は入力装置。 20はデイスプレィ装置、21はモジュール構成図を表
す。

Claims (1)

  1. 【特許請求の範囲】 [1]デバッグ対象プログラム(16)の実行制御を行
    い、デバッグ情報を出力するデバッグシステムにおいて
    、 デバッグ対象プログラムの構成情報およびソースモジュ
    ールごとに定義されている関数情報を記憶するプログラ
    ム構成情報記憶部(11)と、このプログラム構成情報
    記憶部が記憶する構成情報および関数情報に基づいて、
    デバッグ対象プログラム中の各関数にブレークポイント
    を設定する関数トレース制御部(13)と、 デバッグ対象プログラムの実行中断時に、前記プログラ
    ム構成情報記憶部が記憶する構成情報および関数情報に
    基づき、関数情報付きのモジュール構成図を表示すると
    ともに、実行中断に係る関数情報を他と異なる態様で表
    示するモジュール構成表示制御部(15)とを備え、 関数単位またはモジュール単位でトレースを行うように
    したことを特徴とする関数トレース処理方式。 [2]前記関数トレース制御部(13)は、前記モジュ
    ール構成表示制御部(15)が表示したモジュール構成
    図において指定された関数まで、デバッグ対象プログラ
    ムの実行を継続する制御手段(14)を持つことを特徴
    とする請求項1記載の関数トレース処理方式。
JP63215915A 1988-08-30 1988-08-30 関数トレース処理方式 Expired - Fee Related JPH0833847B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP63215915A JPH0833847B2 (ja) 1988-08-30 1988-08-30 関数トレース処理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63215915A JPH0833847B2 (ja) 1988-08-30 1988-08-30 関数トレース処理方式

Publications (2)

Publication Number Publication Date
JPH0264748A true JPH0264748A (ja) 1990-03-05
JPH0833847B2 JPH0833847B2 (ja) 1996-03-29

Family

ID=16680360

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63215915A Expired - Fee Related JPH0833847B2 (ja) 1988-08-30 1988-08-30 関数トレース処理方式

Country Status (1)

Country Link
JP (1) JPH0833847B2 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57103549A (en) * 1980-12-19 1982-06-28 Fujitsu Ltd Computer system
JPS57153343A (en) * 1981-03-18 1982-09-21 Hitachi Ltd Compile method for architecture program
JPS62121536A (ja) * 1985-11-22 1987-06-02 Toshiba Corp プログラム処理装置
JPS62140148A (ja) * 1985-12-16 1987-06-23 Omron Tateisi Electronics Co デバツガにおけるコマンド入力装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57103549A (en) * 1980-12-19 1982-06-28 Fujitsu Ltd Computer system
JPS57153343A (en) * 1981-03-18 1982-09-21 Hitachi Ltd Compile method for architecture program
JPS62121536A (ja) * 1985-11-22 1987-06-02 Toshiba Corp プログラム処理装置
JPS62140148A (ja) * 1985-12-16 1987-06-23 Omron Tateisi Electronics Co デバツガにおけるコマンド入力装置

Also Published As

Publication number Publication date
JPH0833847B2 (ja) 1996-03-29

Similar Documents

Publication Publication Date Title
US8336032B2 (en) Implementing enhanced template debug
US7735069B2 (en) Creating software debug breakpoints activated by specific call patterns
JPH0883197A (ja) ソフトウエアプログラムをデバッグする方法およびコンピュータシステム
JP2000122886A (ja) 半導体試験装置のプログラム作成方式
JPH0264748A (ja) 関数トレース処理方式
JPS62113244A (ja) プログラムテスト装置
WO2022194090A1 (zh) 一种多语言混合调试方法及装置
JPH0264747A (ja) 関数トレース・ステップトレース切り替え制御方式
JPH02275539A (ja) デバッグ処理方式
JP2001166966A (ja) デバッガにおける被テストプログラムの実行環境管理方法
JP2795290B2 (ja) タスク表示方式
JPH03273346A (ja) シンボリックデバッガによる動的呼出し関係解析方式
JP2659366B2 (ja) デバッグ方法及びその装置
JPS63259735A (ja) プログラム実動作環境におけるプログラム図によるプログラムデバツク方式
JPS60159911A (ja) 階層形シ−ケンス制御装置
JPS62140148A (ja) デバツガにおけるコマンド入力装置
JPH05108404A (ja) デバツガシステム
US20050015677A1 (en) Method of executing a computer program
JPH03130840A (ja) オーバーレイモジュールのトレース制御方式
JPH0695910A (ja) 異常処理のための対話型デバッグ制御方式
JPH07311692A (ja) デバッグ方法
JPH0546434A (ja) プログラムデバツグ方式
JPH01145740A (ja) マルチプロセス用エミユレータ
JPH096644A (ja) ソフトウエアデバッグ方法
JPH06250876A (ja) 対話型デバック支援システム

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees