JPH04333146A - デバッグにおけるプログラムの実行制御方式 - Google Patents

デバッグにおけるプログラムの実行制御方式

Info

Publication number
JPH04333146A
JPH04333146A JP3132273A JP13227391A JPH04333146A JP H04333146 A JPH04333146 A JP H04333146A JP 3132273 A JP3132273 A JP 3132273A JP 13227391 A JP13227391 A JP 13227391A JP H04333146 A JPH04333146 A JP H04333146A
Authority
JP
Japan
Prior art keywords
procedure
command
final address
debugging
program
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.)
Pending
Application number
JP3132273A
Other languages
English (en)
Inventor
Hiroko Nakada
裕子 中田
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP3132273A priority Critical patent/JPH04333146A/ja
Publication of JPH04333146A publication Critical patent/JPH04333146A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

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

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、デバッグにおいて、プ
ログラムの実行中にある手続きの中に入ってしまい、そ
の手続きから抜けたい場合、コマンドを入力することに
より、その手続きの終わりでプログラムの実行を停止す
ることができるデバッグにおけるプログラムの実行制御
方式に関する。
【0002】
【従来の技術】従来、デバッグにおいて、プログラムの
実行中にある手続きの中に入ってしまい、その手続きか
ら抜けたい場合は、シングルステップ等を使用して多大
な時間を費やすか、または、非常に複雑な操作を行わな
い限り手続きから抜けることは困難であった。
【0003】
【発明が解決しようとする課題】上述した従来技術では
、デバッグにおいて、プログラムの実行中にある手続き
の中に入ってしまい、その手続きから抜けたい場合は、
シングルステップ等を使用して時間をかけるか、あるい
は、非常に複雑な操作を行わない限り手続きから抜ける
ことが困難であるため、デバッグの効率が悪いという欠
点がある。
【0004】本開発の目的は上述の点に鑑み、デバッグ
において、プログラムの実行中にある手続きの中に入っ
てしまい、その手続きから抜けたい場合に、利用者はコ
マンドを入力するだけで、抜けたい手続きの終わりでプ
ログラムの実行を停止させることができるデバッグにお
けるプログラムの実行制御方式を提供することにある。
【0005】
【課題を解決するための手段】手続きの最終アドレスを
デバッグ情報の中に含んでいるロードモジュールをデバ
ッグするデバッガにおいて、デバッガが起動されると、
ロードモジュール内のデバッグ情報を基にすべての手続
きの最終アドレスを手続き最終アドレステーブルに格納
する手続き最終アドレステーブル生成手段と、デバッグ
時に入力されたコマンドが、プログラムの実行を手続き
の終わりで停止させるコマンドかどうかを解析するコマ
ンド解析手段と、前記コマンド解析手段により、プログ
ラムの実行を手続きの終わりで停止させるコマンドが入
力された場合は、手続きの最終アドレスを手続き最終ア
ドレステーブルから検索し、そのアドレスにブレークポ
イントを設定し、そのアドレスでプログラムの実行を停
止させ、また、手続きの最終アドレスよりも前のアドレ
スに利用者がブレークポイントを設定していた場合は、
利用者のブレークポイントを無視するコマンド実行手段
と、を有している。
【0006】
【実施例】次に、本発明について図面を参照して詳細に
説明する。
【0007】図1は、本発明の一実施例を示すブロック
図である。
【0008】実施例のデバッグにおけるプログラムの実
行制御方式は、手続き最終アドレステーブル生成手段1
と、コマンド解析手段2と、コマンド実行手段3と、手
続き最終アドレステーブル4とを含むデバッガ5と、ロ
ードモジュール6とから構成されている。
【0009】図2は、C言語の原始プログラムファイル
の一例である。C言語においては、「手続き」は「関数
」に対応している。
【0010】図3は、図2で示されたC言語の原始プロ
グラムファイルをコンパイルして生成されたロードモジ
ュールを基に作られた手続き最終アドレステーブルであ
る。デバッガ5は、ロードモジュール6に対するプログ
ラムの実行を監視し、制御できる実行環境を提供する。 ロードモジュール6は、デバッグ情報を持っており、デ
バッグ情報の中には、手続きの最終アドレスが含まれて
いる。例えば、図2に示されたC言語原始プログラムフ
ァイルをコンパイルして生成されたロードモジュールの
デバッグ情報には、■、■、■、■のアドレスが含まれ
ている。
【0011】手続き最終アドレステーブル生成手段1は
、ロードモジュール6のデバッグ情報に含まれているす
べての手続きの最終アドレスを手続き最終アドレステー
ブル4に格納する。例えば、図2に示されたC言語の原
始プログラムファイルをコンパイルして生成されたロー
ドモジュールを基に作られる手続き最終アドレステーブ
ルが図3である。
【0012】コマンド解析手段2は、利用者が入力した
コマンドが、プログラムの実行を手続きの終わりで停止
させるコマンドかどうかを解析し、プログラムの実行を
手続きの終わりで停止させるコマンドが入力された場合
は、コマンド実行手段3に制御を移す。
【0013】コマンド実行手段3は、カレントのアドレ
スと手続き最終アドレステーブル4に格納されているア
ドレスの比較を行う。カレントのアドレスよりも高位の
アドレスで、カレントのアドレスに一番近いアドレスを
検索する。検出したアドレスにブレークポイントを設定
し、設定したブレークポイントまでプログラムの実行を
行う。カレント行から設定したブレークポイントまでの
間に、利用者がブレークポイントを設定していた場合は
、利用者が設定したブレークポイントを無視する処理を
行う。即ち、まず、ロードモジュール6の中に埋め込ま
れているブレーク命令をすべて元の命令に戻し、埋め込
まれていたブレーク命令の位置をすべて退避しておく。 次に、設定した手続きの終わりのブレークポイントまで
プログラムの実行を行う。その後、退避させておいたブ
レーク命令の位置に従って、再度ブレークポイントを設
定する。
【0014】図2のC言語の原始プログラムファイルの
デバッグにおいて、main()から関数a()が呼ば
れる。関数a()でデバッグ中に、関数b()が呼ばれ
関数b()の中に入る。この関数b()のデバッグをし
ないで関数b()を抜けたい時に、カレントのアドレス
と手続き最終アドレステーブル4に格納されているアド
レスとを比較し、■のアドレスが検出される。検出され
た■のアドレスにブレークポイントを設定する。カレン
ト行と■のアドレスまでの間に利用者が設定したブレー
クポイントが存在しなければ、■のアドレスまでプログ
ラムの実行を行う。利用者が設定したブレークポイント
が存在したならば、利用者が設定したブレークポイント
を無視する処理を行い、■のアドレスまでプログラムを
実行する。
【0015】
【発明の効果】以上説明したように本発明のデバッグに
おけるプログラムの実行制御方式では、デバッグにおい
て、プログラムの実行中にある手続きの中に入ってしま
い、その手続きから抜けたい場合、利用者がコマンドを
入力するだけで、抜けたい手続きの終わりでプログラム
の実行を停止させることができるため、デバッグの効率
が良くなるという効果がある。
【図面の簡単な説明】
【図1】本発明の一実施例を示す。
【図2】C言語の原始プログラムの一例。
【図3】C言語の原始プログラムファイルをコンパイル
して生成されたロードモジュールを基に作られた手続き
最終アドレステーブル。
【符号の説明】
1    手続き最終アドレステーブル生成手段2  
  コマンド解析手段 3    コマンド実行手段 4    手続き最終アドレステーブル5    デバ
ッガ 6    ロードモジュール

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】  手続きの最終アドレスをデバッグ情報
    の中に含んでいるロードモジュールをデバッグするデバ
    ッガにおいて、デバッガが起動されると、ロードモジュ
    ール内のデバッグ情報を基にすべての手続きの最終アド
    レスを手続き最終アドレステーブルに格納する手続き最
    終アドレステーブル生成手段と、デバッグ時に入力され
    たコマンドが、プログラムの実行を手続きの終わりで停
    止させるコマンドかどうかを解析するコマンド解析手段
    と、前記コマンド解析手段により、プログラムの実行を
    手続きの終わりで停止させるコマンドが入力された場合
    は、手続きの最終アドレスを手続き最終アドレステーブ
    ルから検索し、そのアドレスにブレークポイントを設定
    し、そのアドレスでプログラムの実行を停止させるコマ
    ンド実行手段と、を有することを特徴とするデバッグに
    おけるプログラムの実行制御方式。
  2. 【請求項2】  プログラムの実行を手続きの終わりで
    停止させるコマンドが入力され、手続きの最終アドレス
    よりも前のアドレスに利用者がブレークポイントを設定
    していた場合は、利用者のブレークポイントを無視する
    ことを特徴とする特許請求の範囲第1項記載のデバッグ
    におけるプログラムの実行制御方式。
JP3132273A 1991-05-09 1991-05-09 デバッグにおけるプログラムの実行制御方式 Pending JPH04333146A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3132273A JPH04333146A (ja) 1991-05-09 1991-05-09 デバッグにおけるプログラムの実行制御方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3132273A JPH04333146A (ja) 1991-05-09 1991-05-09 デバッグにおけるプログラムの実行制御方式

Publications (1)

Publication Number Publication Date
JPH04333146A true JPH04333146A (ja) 1992-11-20

Family

ID=15077429

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3132273A Pending JPH04333146A (ja) 1991-05-09 1991-05-09 デバッグにおけるプログラムの実行制御方式

Country Status (1)

Country Link
JP (1) JPH04333146A (ja)

Similar Documents

Publication Publication Date Title
JPH04333146A (ja) デバッグにおけるプログラムの実行制御方式
JP2007004516A (ja) 組込みシステムのプログラムデバッグ方法
JPH06242943A (ja) ソースコードレベルデバッグ装置
JPH02220145A (ja) プログラムトレース方式
JPS61180344A (ja) 高級言語のステツプ実行システム
JP2006350676A (ja) 組込みシステムのプログラムデバッグ方法
JPS61180342A (ja) 高級言語のステツプ実行方式
JPH05334119A (ja) プログラムデバッグ方法
JPH07319730A (ja) テスト・デバッグ方法
JPH0239332A (ja) ソフトウェアブレーク方式
JPH04310139A (ja) コンパイラ言語用デバッグサポートツール
JPS62140148A (ja) デバツガにおけるコマンド入力装置
JPH0546434A (ja) プログラムデバツグ方式
JPS62108338A (ja) プログラムテスト装置
JPH05233365A (ja) 最適化コードデバッグ方式
JPH0488438A (ja) 高級言語による原始プログラムに対するデバッガの一命令実行方式
JPH03242736A (ja) 異常処理方式
JPH03246734A (ja) デバッガのジャンプ先アドレスチェック方法および装置
JPH07110780A (ja) デバッグ装置
JPS6292034A (ja) プログラムデバツグ装置
JPS63205740A (ja) プログラム実行トレ−ス処理方式
JPS62182941A (ja) プログラムデバツグ方式
JPH034336A (ja) プログラムデバッグ処理装置
JPS6116344A (ja) 対話形式デバツグ処理方式
JPH0659929A (ja) コンピュータ装置