JPH0833846B2 - 関数トレース・ステップトレース切り替え制御方式 - Google Patents

関数トレース・ステップトレース切り替え制御方式

Info

Publication number
JPH0833846B2
JPH0833846B2 JP63215913A JP21591388A JPH0833846B2 JP H0833846 B2 JPH0833846 B2 JP H0833846B2 JP 63215913 A JP63215913 A JP 63215913A JP 21591388 A JP21591388 A JP 21591388A JP H0833846 B2 JPH0833846 B2 JP H0833846B2
Authority
JP
Japan
Prior art keywords
trace
function
program
control unit
configuration information
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
JP63215913A
Other languages
English (en)
Other versions
JPH0264747A (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 JP63215913A priority Critical patent/JPH0833846B2/ja
Publication of JPH0264747A publication Critical patent/JPH0264747A/ja
Publication of JPH0833846B2 publication Critical patent/JPH0833846B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】 〔概要〕 デバッグ対象プログラムの実行制御を行い,デバッグ
情報を出力するデバッグシステムにおける関数トレース
・ステップトレース切り替え制御方式に関し, 関数単位のトレースとステップ単位のトレースとを簡
単に切り替えることができるようにし,効率的にデバッ
グ対象プログラムの動作試験を実行可能とする手段を提
供することを目的とし, デバッグ対象プログラムの構成情報および関数情報を
記憶するプログラム構成情報記憶部と,関数単位でトレ
ースの制御を行う関数トレース制御部と,ソースモジュ
ールのステップ単位でトレースの制御を行うステップト
レース制御部と,関数トレース画面またはステップトレ
ース画面により,デバッグ対象プログラムの実行状況を
表示する表示制御部と,関数トレース制御部による制御
とステップトレース制御部による制御とを入力により切
り替えるトレース切り替え制御部とを備えるように構成
する。
〔産業上の利用分野〕
本発明は,デバッグ対象プログラムの実行制御を行
い,デバッグ情報を出力するデバッグシステムにおける
関数トレース・ステップトレース切り替え制御方式に関
する。
開発したプログラムの信頼性を向上させるため,その
プログラムが正常に動作するかどうかをテストすること
は重要であり,そのデバッグに要する時間も,年々増加
する傾向にある。そのため,効率のよいデバッグを行う
ことができるツールが必要とされている。
〔従来の技術〕
従来,デバッグのためのツールとして,ソースレベル
でデバッグするものや,機械語レベルでデバッグするも
のなど,各種のデバッグシステム(デバッガ)が用いら
れている。このようなデバッグシステムでは,デバッグ
対象プログラムの実行状況をトレースすることが行われ
る。
プログラムをデバッグする場合,例えば最初は,ソー
スプログラムのステップ単位で細かくトレースしていく
ことが必要となるが,ある程度,正常に動作することを
確認した後は,細かいトレースについては,部分的に行
い,大部分については,大まかなトレースによって,効
率よくデバッグすることが必要となる。
しかし,従来のデバッグシステムでは,細かくステッ
プ単位でトレースしている途中で,トレース単位を,関
数単位やモジュール単位に変更したり,その逆のパター
ンでトレース状況を見せたりするようなことはできなか
った。
〔発明が解決しようとする課題〕
従来のデバッグシステムでは,プログラムを構成する
各モジュールの関数を記述したモジュール構成情報や,
各モジュールで定義された関数の情報を持たないため,
細かいステップ単位でトレースすることはできても,関
数単位やモジュール単位での大まかなデバッグを,効率
よく行うことはできなかった。
もし,関数単位やモジュール単位でトレースを行おう
とすると,人間がソースプログラムリストを調べて,関
数のアドレス等を抽出し,1つ1つブレークポイントを設
定して,デバッグ対象プログラムの実行を中断させるよ
うにしなければならないので,そのブレークポイントの
設定に,非常に時間がかかるという問題があった。
プログラムをデバッグしている途中で,大まかにトレ
ースする機能と,細かくトレースする機能とを簡単に切
り替えることができれば,動作確認の程度に応じて,効
率的にデバッグすることができるようになると考えられ
る。
本発明は上記問題点の解決を図り,関数単位のトレー
スとステップ単位のトレースとを簡単に切り替えること
ができるようにし,効率的にデバッグ対象プログラムの
動作試験を実行可能とする手段を提供することを目的と
している。
〔課題を解決するための手段〕
第1図は本発明の構成例を示す。
第1図において,10はCPUおよびメモリ等からなる処理
装置,11はモジュール構成情報やモジュール別関数情報
や行情報等を記憶するプログラム構成情報記憶部,12は
デバッグ機能を提供するデバッガ,13はトレース切り替
え制御部,14は関数トレース制御部,15はステップトレー
ス制御部,16は表示制御部,17は動作試験の対象となるデ
バッグ対象プログラム,18はプログラム構成情報が格納
されたプログラム構成情報ファイル,19はデバッグ対象
プログラム17のロードモジュールが格納されたロードモ
ジュールファイル,20はキーボードやマウス等の入力装
置,21はディスプレイ装置,22は関数単位のトレース状況
を表示する関数トレース画面,23はステップ単位のトレ
ース状況を表示するステップトレース画面を表す。
プログラム構成情報ファイル18は,ソースプログラム
の作成時およびその翻訳・結合時に作成されるファイル
であり,プログラムのモジュール構成や,どのような関
数がどのモジュールで定義されているかを示すモジュー
ル別の関数情報が格納されているファイルである。
デバッガ12の起動時に,デバッグ対象プログラム17の
プログラム名が指定されると,プログラム構成情報ファ
イル18の内容が,プログラム構成情報記憶部11に読み出
されるとともに,ロードモジュールファイル19からデバ
ッグ対象プログラム17のローディングが行われる。
関数トレース制御部14は,プログラム構成情報記憶部
11に記憶されている情報に基づいて,デバッグ対象プロ
グラム17中の各関数の先頭に,自動的にブレークポイン
トを設定する処理を行う。ブレークポイントを設定した
後,デバッグ対象プログラム17を実行させると,各関数
の先頭で実行が中断し,デバッガ12に制御が渡されるこ
とになる。
関数トレース制御部14は,デバッグ対象プログラム17
の実行中断により,制御が渡されると,表示制御部16を
呼び出す。表示制御部16は,関数トレース制御部14から
起動された場合,プログラム構成情報記憶部11に記憶さ
れている情報に基づいて,ディスプレイ装置21に,関数
トレース画面22を表示する。関数トレース画面22には,
デバッグ対象プログラム17に係るソースモジュールの階
層情報および各モジュールで定義されている関数名の情
報が表示される。また,関数トレース画面22において,
実行中断に係る関数情報が,反転,色の変更,網がけ,
または矢印表示等により,他の関数と区別できる態様で
表示される。
ステップトレース制御部15は,ソースモジュールのス
テップ単位でトレースの制御を行うものであって,従来
と同様なデバッグの制御を行うものである。ステップト
レース制御部15は,表示制御部16を介して,ディスプレ
イ装置21に,ステップトレース画面23を表示する。ステ
ップトレース画面23には,実行中の行を含むソースリス
トが行単位に表示され,特に実行中の行は,反転,色の
変更,網がけ,または矢印表示等により示される。
本発明では,さらにトレース切り替え制御部13が設け
られ,トレース切り替え制御部13は,デバッグ中に,入
力装置20からの入力により,関数トレース制御部14によ
る制御と,ステップトレース制御部15による制御とを切
り替える処理を行う。
〔作用〕
トレース切り替え制御部13によって,関数トレース制
御部14と,ステップトレース制御部15とを切り替え,細
かくトレースしたい場合にはステップ単位によるトレー
スを,大まかにトレースしたい場合には関数単位による
トレースを任意に選択できるので,実行状況に応じて,
効率的にデバッグ作業を進めることができる。
〔実施例〕
第2図は本発明の一実施例に係るプログラム構成情報
の例,第3図は本発明の一実施例に係る関数トレース画
面の例,第4図は本発明の一実施例に係る切り替え制御
用のメニューの例,第5図はロードモジュールの内容説
明図,第6図は本発明の一実施例に係るステップトレー
ス画面の例,第7図は本発明の一実施例処理フローを示
す。
本実施例では,第1図に示すプログラム構成情報記憶
部11において,プログラム構成情報を,第2図(イ)に
示す構造により管理する。
フィールド30は,デバッグ対象プログラム17のプログ
ラム名を記憶する。そして,ポインタ31から,先頭のモ
ジュール情報をポイントする。各モジュール情報の記憶
部は,モジュール名のフィールド32と,同レベルの兄弟
モジュールへのポインタ33と,下位レベルの子モジュー
ルへのポインタ34と,関数名リスト40へのポインタ35と
を持つ。関数名リスト40は,各モジュールで定義されて
いる関数名の一覧表である。
例えば,デバッグ対象プログラムのプログラム名が
“test"であり,そのプログラムが,主となるソースモ
ジュール“main.c"と,副となる2つのソースモジュー
ル“sub1.c"および“sub2.c"とから構成されているとす
る。また,ソースモジュール“main.c"の中で,関数“m
ain"と“error"が定義され,ソースモジュール“sub1.
c"の中で,関数“subx"と“suby"が定義され,ソースモ
ジュール“sub2.c"の中で,関数“subz"が定義されてい
るとする。
このときのプログラム構成情報は,第2図(イ)に示
す形式によって,第2図(ロ)に示すような木構造にな
る。すなわち,“main.c"から,“sub1.c"および“sub
2.c"を連鎖的にポイントし,各々関数名リスト40をポイ
ントする。
関数トレースのモードの場合,第1図に示す表示制御
部16は,第2図(ロ)に示すようなプログラム構成情報
を基に,例えば第3図に示すような関数トレース画面22
を表示する。
プログラムを構成するモジュールの関係が,すぐにわ
かるように,モジュール間の親子関係を,引き出し線を
使って表す。また,各モジュールに対して,その中で定
義されている関数を並べて表示する。
また,現在,ブレークポイントによって実行が中断し
ている関数を,反転表示51により,表示する。この例で
は,モジュール“sub1.c"中の関数“subx"の先頭で実行
が中断している。なお,モジュール構成をブロック図の
ような形式で表してもよい。また,実行中断の関数を,
反転表示51ではなく,網がけ表示,ブリンク表示等によ
り表してもよい。
本実施例では,さらに第3図に示すマウス・カーソル
52を用いて,関数トレース画面22上で特定の関数を指示
し,マウス・ボタンを操作することにより,その特定の
関数だけで,実行を停止させることもできるようになっ
ている。その場合,指定された関数を記憶しておき,実
行が中断したときに,その中断点が,その関数に含まれ
るかどうかを判定し,含まれるときにだけ,プログラム
の実行を停止させる。
関数単位のトレースと,ステップ単位のトレースの切
り替えは,例えば図示省略したグローバルメニューによ
り,第4図に示すようなプルダウンメニューをオープン
し,そこで,関数トレースまたはステップトレースのモ
ードを,マウス等により選択することにより行う。
ステップトレースが選択された場合,第1図に示すス
テップトレース制御部15を呼び出し,ステップ単位の細
かいトレース制御を行う。
ロードモジュールファイルには,翻訳時のデバッグオ
プションによって,第5図に示すようにオブジェクトの
命令コードの他に,行番号とアドレスとの対応を示す行
情報や,シンボル名とアドレスとの対応を示すシンボル
テーブルが格納される。そこで,トレースの制御には,
それらの情報を用いる。
ステップ単位のトレースを行っているときに,ディス
プレイ装置に表示される画面は,例えば第6図に示すよ
うなステップトレース画面23である。ステップトレース
画面23には,現在トレースしているソースステートメン
トが,行番号とともに表示される。このステップトレー
ス画面23でも,実行中,停止中のステップ情報が,反転
表示51により表示される。また,マウス・カーソル52に
より,ブレークポイントを設定することなどができるよ
うになっている。このブレークポイントの設定処理等に
ついては,従来技術により,容易に実現できるので,こ
れ以上の詳細な説明を省略する。
第7図は,本発明の一実施例に係る処理の流れを示し
ている。以下の説明における〜は,第7図に示す処
理〜に対応する。
デバッガ12によって,最初,関数トレース制御部14が
起動される。関数トレース制御部14は,ディスク記憶装
置等に設けられたプログラム構成情報ファイル18から,
モジュール構成と関数の情報を取り出し,プログラム構
成情報記憶部11に設定する。
次に,ロードモジュールファイル19からデバッグ対象
プログラム17をロードし,プログラム構成情報記憶部11
に記憶されている情報に従って,デバッグ対象プログラ
ム17における各関数の先頭にブレークポイントを設定す
る。ブレークポイントの設定は,例えば命令を書き換え
ることによって行う。各関数のアドレスは,ロードモジ
ュールファイル19中のシンボルテーブルから得ることが
できる。ブレークポイントの設定後,デバッグ対象プロ
グラム17を起動実行する。
最初は,メイン関数等の先頭に設定したブレークポイ
ントでストップすることになる。関数トレース制御部14
に制御が戻されたならば,表示制御部16を呼び出し,関
数トレース画面22を編集して,関数単位のトレース状況
を表示する。関数単位のトレース制御を行っているとき
に,何らかの入力があったならば,処理へ移る。
入力情報の解析を行う。実行キーが押下された場合,
処理へ制御を戻し,次のブレークポイントまでの関数
単位のトレースを継続する。終了指示の入力があった場
合,処理へ移る。メニュー等により,関数トレースか
らステップトレースへの切り替え指示があった場合に
は,処理へ移る。
現在停止しているデバッグ対象プログラム17のアドレ
スから,その停止している関数部分のソースプログラム
を探す。
ソースプログラムをもとに,第6図に示すようなステ
ップトレース画面23を編集し,ディスプレイ装置に表示
する。以後,第1図に示すステップトレース制御部15に
よるステップ単位のトレース制御を行う。
入力があったならば、その入力情報を解析する。実行
キーの入力であれば,処理へ戻り,ステップ単位のト
レース制御によるデバッグ対象プログラム17の実行を継
続する。終了指示の場合,処理へ移る。ステップトレ
ースから関数トレースへの切り替え指示があったなら
ば,処理を実行する。
現在のステップがどの関数にあたるかを,プログラム
構成情報記憶部11に記憶されている情報に基づき抽出す
る。そして,処理に制御を戻し,関数単位のトレース
制御に移る。
デバッグ対象プログラム17が最後まで走行した場合,
または途中で実行終了の指示があった場合,終了メッセ
ージ等のガイド情報を出力し,デバッグ対象プログラム
17の終了処理を行う。
〔発明の効果〕
以上説明したように,本発明によれば,従来の細かい
ステップ単位のトレース機能に加え,関数単位やモジュ
ール単位の大まかなトレース機能を利用することができ
る。従って,細かいトレースの不要な個所は,関数単位
で大まかに実行し,細かいトレースが必要になれば,ソ
ースプログラムのリストを表示して,1ステップ単位のト
レースを行うことができる。これによって,効率的にデ
バッグ作業を進めることができるようになる。
【図面の簡単な説明】
第1図は本発明の構成例, 第2図は本発明の一実施例に係るプログラム構成情報の
例, 第3図は本発明の一実施例に係る関数トレース画面の
例, 第4図は本発明の一実施例に係る切り替え制御用のメニ
ューの例, 第5図はロードモジュールの内容説明図, 第6図は本発明の一実施例に係るステップトレース画面
の例, 第7図は本発明の一実施例処理フローを示す。 図中,10は処理装置,11はプログラム構成情報記憶部,12
はデバッガ,13はトレース切り替え制御部,14は関数トレ
ース制御部,15はステップトレース制御部,16は表示制御
部,17はデバッグ対象プログラム,18はプログラム構成情
報ファイル,19はロードモジュールファイル,20は入力装
置,21はディスプレイ装置,22は関数トレース画面,23は
ステップトレース画面を表す。

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】デバッグ対象プログラム(17)の実行制御
    を行い,デバッグ情報を出力するデバッグシステムにお
    いて, 少なくともデバッグ対象プログラムの構成情報およびソ
    ースモジュールごとに定義されている関数情報を記憶す
    るプログラム構成情報記憶部(11)と, このプログラム構成情報記憶部を参照し,デバッグ対象
    プログラム中の各関数に自動的にブレークポイントを設
    定し,各関数のブレークポイントまたは指定された特定
    の関数のブレークポイントで実行を中断させ関数単位で
    トレースの制御を行う関数トレース制御部(14)と, 前記プログラム構成情報記憶部を参照し,ソースモジュ
    ールのステップ単位でトレースの制御を行うステップト
    レース制御部(15)と, 関数トレース画面またはステップトレース画面により,
    デバッグ対象プログラムの実行状況を表示する表示制御
    部(16)と, 前記関数トレース制御部による制御と,前記ステップト
    レース制御部による制御とをメニュー入力により切り替
    えるトレース切り替え制御部(13)とを備えたことを特
    徴とする関数トレース・ステップトレース切り替え制御
    方式。
JP63215913A 1988-08-30 1988-08-30 関数トレース・ステップトレース切り替え制御方式 Expired - Fee Related JPH0833846B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP63215913A JPH0833846B2 (ja) 1988-08-30 1988-08-30 関数トレース・ステップトレース切り替え制御方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63215913A JPH0833846B2 (ja) 1988-08-30 1988-08-30 関数トレース・ステップトレース切り替え制御方式

Publications (2)

Publication Number Publication Date
JPH0264747A JPH0264747A (ja) 1990-03-05
JPH0833846B2 true JPH0833846B2 (ja) 1996-03-29

Family

ID=16680326

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63215913A Expired - Fee Related JPH0833846B2 (ja) 1988-08-30 1988-08-30 関数トレース・ステップトレース切り替え制御方式

Country Status (1)

Country Link
JP (1) JPH0833846B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05233363A (ja) * 1992-02-24 1993-09-10 Fujitsu General Ltd エミュレータのトレース装置
JP2001060161A (ja) 1999-08-24 2001-03-06 Nec Ic Microcomput Syst Ltd デバッグ装置、方法及び記録媒体

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6053331B2 (ja) * 1980-12-19 1985-11-25 富士通株式会社 計算機システム
JPS62121536A (ja) * 1985-11-22 1987-06-02 Toshiba Corp プログラム処理装置

Also Published As

Publication number Publication date
JPH0264747A (ja) 1990-03-05

Similar Documents

Publication Publication Date Title
US6243857B1 (en) Windows-based flowcharting and code generation system
KR100248376B1 (ko) 동적-비주얼 통합 병렬 디버깅 장치 및 디버깅 방법
US6981248B2 (en) Conditional breakpoint encountered indication
US6550056B1 (en) Source level debugger for debugging source programs
JP2005228326A (ja) データ処理システム、アプリケーションプログラムのカスタマイズパラメータを表示する方法およびコンピュータプログラム製品
JPH0833846B2 (ja) 関数トレース・ステップトレース切り替え制御方式
JPH06332689A (ja) プログラムの表示方法およびプログラムの編集受付け方法
JPH02275539A (ja) デバッグ処理方式
JPH0833847B2 (ja) 関数トレース処理方式
JP4387288B2 (ja) 制御用表示装置、エディタ装置、プログラムおよび記録媒体
JP2570593B2 (ja) デバッグ装置
JPH05108404A (ja) デバツガシステム
JPH06274567A (ja) 論理シミュレーション装置
JPS60159911A (ja) 階層形シ−ケンス制御装置
Hines CodeBase Relationship Visualizer: Visualizing Relationships Between Source Code Files
WO2004097545A2 (en) A method of executing a computer program
JPS63259735A (ja) プログラム実動作環境におけるプログラム図によるプログラムデバツク方式
JPS63189948A (ja) 対話形デバツガにおけるバツチ形デバツグ方式
JPH06242943A (ja) ソースコードレベルデバッグ装置
JPH01209544A (ja) シミュレートデバッグ方式
JPH07311692A (ja) デバッグ方法
JPH04155540A (ja) 対話型デバッガによるプログラム修正方式
JPH03189737A (ja) プログラム開発装置
JPH096644A (ja) ソフトウエアデバッグ方法
Reiss et al. From the Concrete to the Abstract: Visual Representations of Program Execution.

Legal Events

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