JPH0644101A - プログラムデバッグ処理方法 - Google Patents

プログラムデバッグ処理方法

Info

Publication number
JPH0644101A
JPH0644101A JP4195693A JP19569392A JPH0644101A JP H0644101 A JPH0644101 A JP H0644101A JP 4195693 A JP4195693 A JP 4195693A JP 19569392 A JP19569392 A JP 19569392A JP H0644101 A JPH0644101 A JP H0644101A
Authority
JP
Japan
Prior art keywords
program
debug
information
program line
line number
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
JP4195693A
Other languages
English (en)
Other versions
JP2827724B2 (ja
Inventor
Taiji Kawai
泰司 河合
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 JP4195693A priority Critical patent/JP2827724B2/ja
Publication of JPH0644101A publication Critical patent/JPH0644101A/ja
Application granted granted Critical
Publication of JP2827724B2 publication Critical patent/JP2827724B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【目的】 高級プログラミング言語プログラムの実行デ
バッグに関し、展開機能を引用した部分の詳細デバッグ
を、本体のプログラム行と同様にできるようにするプロ
グラムデバッグ処理方法を目的とする。 【構成】 実行デバッグのためのデバッグ制御を行うシ
ステムであり、コンパイラ2は、デバッグ情報4を生成
する場合に、原始プログラム1に定義された展開機能部
を引用して該定義内容に置き換えた結果の展開部分につ
いて、引用関係、及び該展開部分内のプログラム行と目
的プログラム3との対応を示す情報を引用関係情報6と
してデバッグ情報4に付加し、デバッガ5は、該デバッ
グ指令のオペランドとして、該展開部分についての該引
用関係を含むプログラム行番号が指定された場合に、デ
バッグ情報4の引用関係情報6に基づいて、該展開部分
内の指定の該プログラム行を識別し、該デバッグ制御を
行うように構成する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、計算機の高級プログラ
ミング言語で記述されたプログラムの実行デバッグに係
り、特にいわゆる原始プログラムレベルのデバッグにお
いて、展開機能の引用部分についての詳細なデバッグを
可能にするプログラムデバッグ処理方法に関する。
【0002】
【従来の技術】高級プログラミング言語で記述された原
始プログラムについての、いわゆる原始プログラムレベ
ルの実行デバッグでは、公知のように原始プログラムを
翻訳した目的プログラムの実行について、あたかも原始
プログラムがそのまま実行されているようにデバッグ操
作を行うことができる。
【0003】即ち、被デバッグプログラムの実行を制御
するデバッガに対して、原始プログラム上のプログラム
行を、原始プログラムでのプログラム内位置(以下にプ
ログラム行番号という)等で指定して指令することによ
り、ステップ動作、停止、実行結果の参照その他のデバ
ッグ操作を可能にする。
【0004】このために、その原始プログラムを翻訳す
るコンパイラは、目的プログラムを生成する場合に、原
始プログラムの各プログラム行番号と目的プログラム内
の機械語命令の番地との対応を示す情報等を同時に生成
してデバッグ情報として出力する。
【0005】デバッガは、デバッグ指令のオペランドに
指定されるプログラム行番号について、デバッグ情報を
参照して目的プログラムの番地を決定することにより、
目的プログラム実行について指令で指定された制御を行
う。
【0006】例えば、図4(a)のような原始プログラム
があるとする。図の左端の列の数字をプログラム行番号
として、例えばプログラム行番号「100」から、この
プログラムの本体が始まり、それより前には各種定義文
や宣言文のプログラム行があるものとする。
【0007】この例では、プログラム行番号「101」
は、定義されたマクロ「KAKAKU」を引用するプログラム
行であり、「102」は出力命令のプログラム行であ
り、引用されるマクロ「KAKAKU」は、プログラム行番号
「12」「13」からなる展開機能部の「define」文で
定義され、この場合2行のプログラム行に展開されるよ
うに定義されている。
【0008】この定義では、2行目で更にマクロ「ZEIK
IN」を引用し、いわゆる引用関係の2段階ネストが形成
され、マクロ「ZEIKIN」は、プログラム行番号「10」
「11」の展開機能部の「define」文により、前記と同
様の形式で定義される。
【0009】このような場合にコンパイラは、プログラ
ム行番号「101」のプログラム行を、マクロ定義を引
用して例えば図4(b)に示すように3行のプログラムに
展開し、それをプログラム行番号「102」のプログラ
ムと共に翻訳して、図4(c)に例示するような目的プロ
グラムを生成する。
【0010】同時にコンパイラは、デバッグ情報とし
て、プログラム行番号と命令語の番地との対応を示す図
4(d)のような情報を生成する。なお図において、命令
語番地は16進で表示されている。
【0011】
【発明が解決しようとする課題】前記の展開機能部の引
用のように、プログラム行を展開するように引用される
展開機能としては、マクロ定義や外部ファイルの取込み
機能がある。
【0012】それらの場合には、前記例のように元の1
プログラム行が一般に複数のプログラム行に展開される
が、当然複数行に展開された各プログラム行には原始プ
ログラム上のプログラム行番号が無い。
【0013】そこで、その部分についてのデバッグ情報
では、元の1個のプログラム行番号と、複数のプログラ
ム行から生成される目的プログラムの命令語群とを一括
して対応させることになる。
【0014】このために、展開部分内にバグがある場合
にも、デバッガの利用者には、途中状態をチェックする
ために、例えばその展開部分内の特定のプログラム行を
指定して停止させるというような指令を行う手段が無
い。
【0015】従って、そのような場合に利用者は、展開
機能の引用関係を調べ展開部分の内容をプログラムリス
ト上で解析することによって、バグの所在を推測するこ
とが必要になり、デバッグ作業を非能率にする一要因と
なる。
【0016】本発明は、展開機能を引用した展開部分内
の詳細デバッグが、本体のプログラム行と同様にできる
ようにするプログラムデバッグ処理方法を目的とする。
【0017】
【課題を解決するための手段】図1は、本発明の構成を
示すブロック図である。図はプログラムデバッグ処理方
法の構成であって、所与の原始プログラム1について、
コンパイラ2が原始プログラム1の翻訳時に、原始プロ
グラム1のプログラム行番号と目的プログラム3の番地
との対応を示す所定のデバッグ情報4を生成し、デバッ
ガ5がデバッグ情報4を参照することにより、原始プロ
グラム1上のプログラム行番号をオペランドに指定する
各種デバッグ指令を解釈して、目的プログラム3の実行
デバッグのためのデバッグ制御を行うシステムである。
【0018】コンパイラ2は、デバッグ情報4を生成す
る場合に、原始プログラム1に定義された展開機能部を
引用して該定義内容に置き換えた結果の展開部分につい
て、引用関係、及び該展開部分内のプログラム行と目的
プログラム3との対応を示す情報を引用関係情報6とし
てデバッグ情報4に付加する。
【0019】デバッガ5は、該デバッグ指令のオペラン
ドとして、該展開部分についての該引用関係を含むプロ
グラム行番号が指定された場合に、デバッグ情報4と引
用関係情報6に基づいて、該展開部分内の指定の該プロ
グラム行を識別し、該デバッグ制御を行う。
【0020】
【作用】本発明の処理方法により、展開部分内の各プロ
グラム行を、例えば引用のネストレベルと、引用先の定
義文の各プログラム行番号とで表す引用関係によって識
別可能として、各プログラム行と目的プログラムの番地
との対応関係を示すようにし、この情報を引用関係情報
としてデバッグ情報に組み込む。
【0021】利用者がデバッグ指令でオペランドに展開
部分内のプログラム行を指定する場合には、例えば引用
元の本体のプログラム行番号から始めて、引用先の定義
文のプログラム行番号をネストレベルの順に指定するこ
とにより展開結果の中の1プログラム行を指定する。
【0022】デバッガは、前記のオペランド指定を引用
関係情報によって解析し、指定のプログラム行を決定
し、決定したプログラム行に関して通常の場合と同様に
デバッグ制御をする。
【0023】
【実施例】図1におけるコンパイラ2は、引用関係情報
6をデバッグ情報4に付加して、例えば図4(e)に示す
ようなテーブルとして生成する。図は前記図4(a)の原
始プログラムの例に対応する。
【0024】図のテーブルは、左から「プログラム行番
号」、「ネストレベル」及び「命令語番地」の各欄を持
ち、プログラム本体の各プログラム行のプログラム行番
号に対応するネストレベルを「1」とする。
【0025】本体プログラムから引用して展開したプロ
グラム行のネストレベルを「2」とし、それから更に引
用して展開したプログラム行のネストレベルを「3」と
するというようにネストレベルの値を順次増加する。展
開部分の各プログラム行には、展開機能部に定義されて
いるプログラム行のプログラム行番号を表示する。
【0026】なお、実行を中断した場合に、その番地か
らプログラム行を求めるために、図4(e)の各要素は命
令語番地の昇順に並べられる。図の例では、プログラム
行番号「101」で、マクロ「KAKAKU」を引用するの
で、プログラム行番号「101」の行はネストレベル
「1」で、続いて引用先のプログラム行番号「12」、
「13」に展開され、それらのネストレベルは「2」と
なる。
【0027】次にプログラム行番号「13」で更にマク
ロ「ZEIKIN」を引用するので、引用先のプログラム行番
号「10」、「11」に展開され、それらのネストレベ
ルは「3」となる。
【0028】命令語番地には、図4(d)に例示する目的
プログラムを参照すれば明らかなように、目的プログラ
ムの対応する命令群の先頭の番地を示すが、展開部分に
対応する引用元のプログラム行(例えばプログラム行番
号「101」)には、直接対応する命令語が無いことに
なるので、命令語番地は所定の無効表示とする。
【0029】利用者は、例えば図4(a)のようなプログ
ラムをデバッグする場合に、プログラム行番号「10
1」で引用するマクロ「KAKAKU」の、プログラム行番号
「13」で引用するマクロ「ZEIKIN」のプログラム行番
号「10」をデバッグ指令のオペランドに指定する場合
に、引用関係を含むプログラム行番号指定を例えば「1
01/13/10」のように表現することにする (以下
においてこの表現を文番号という)。
【0030】デバッガ5は、図2のような文番号管理ブ
ロックを設けて、一連のデバッグ指令による各文番号指
定と、その対応する命令語番地とを保持し、通常のよう
に命令語番地による制御を行って、ある番地で実行を中
断した場合に、その番地の値をキーにして文番号管理ブ
ロックを検索し、一致するブロックに保持する文番号指
定の値を得て、発生した事象を利用者に通知するメッセ
ージ等に表現する文番号として使用する。
【0031】このようにして文番号の形式を保持するこ
とにより、命令語番地から、前記のような利用者が指定
する文番号表現を逆に生成する手間を省くと共に、例え
ば図4のプログラムの場合に、「101/13/10」
という指定でも「101/13」という指定でも、同様
に命令語番地「0546」で停止させることになるが、その
場合のメッセージ等には両者を区別して指定通りの表現
で停止位置を表すことができるようにする。
【0032】デバッガ5は、前記のような表現のオペラ
ンド指定の文番号から、図4(e)のようなデバッグ情報
テーブルを参照して命令語番地を決定する処理を次のよ
うに行う。
【0033】図3はデバッガが文番号管理ブロック設定
する処理の流れ図であり、先ず処理ステップ10で検索対
象ネストレベルを1に、検索する項番号をデバッグ情報
テーブルの先頭の項に初期設定する。
【0034】処理ステップ11で、指定の文番号の現検索
対象ネストレベルの位置 (「/」を区切りとして左から
レベル1、レベル2....とする)のプログラム行番号
を、検索対象行番号として取り出す。
【0035】処理ステップ12〜14の繰り返しで、デバッ
グ情報テーブルの先頭から検索対象ネストレベルのある
最初の項を検索し、一致する項があると、次に処理ステ
ップ15でその項のプログラム行番号が検索対象行番号と
一致するか識別し、プログラム行番号が一致しなけれ
ば、処理ステップ13でデバッグ情報テーブルの終わりか
識別し、終わりでなければ処理ステップ14で項を進め、
処理ステップ12へ戻ってネストレベルの検索からやり直
す。
【0036】プログラム行番号が一致すれば、処理ステ
ップ16で、現検索対象行番号が指定の文番号の末尾のプ
ログラム行番号か識別し、末尾でなければ処理ステップ
17で検索対象ネストレベルを1つ進めて、処理ステップ
11へ戻り、新ネストレベルについて前記と同様に処理す
る。
【0037】処理ステップ16で指定の文番号の末尾まで
処理したことを識別すると、処理ステップ18でデバッグ
情報テーブルの現項の命令語番地を取り出して、新しく
設ける文番号管理ブロックに、文番号と命令語番地とを
設定し、処理ステップ19でその文番号管理ブロックを図
2に示すチェインの始端につないで処理を終わる。
【0038】
【発明の効果】以上の説明から明らかなように本発明に
よれば、計算機の高級プログラミング言語プログラムの
実行デバッグにおいて、展開機能部を引用した展開部分
についてデバッグ指令で展開結果の各プログラム行を指
定することにより、展開部分の詳細デバッグが本体のプ
ログラム行と同様にできるようになるので、デバッグ作
業の効率を改善するという著しい工業的効果がある。
【図面の簡単な説明】
【図1】 本発明の構成を示すブロック図
【図2】 文番号管理ブロックを説明する図
【図3】 デバッガの処理の流れ図
【図4】 デバッグ情報を説明する図
【符号の説明】
1 原始プログラム 2 コンパイラ 3 目的プログラム 4 デバッグ情報 5 デバッガ 6 引用関係情報 10〜19 処理ステップ

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 所与の原始プログラム(1)について、コ
    ンパイラ(2)が該原始プログラムの翻訳時に、該原始プ
    ログラムのプログラム行番号と目的プログラム(3)の番
    地との対応を示す所定のデバッグ情報(4)を生成し、デ
    バッガ(5)が該デバッグ情報を参照することにより、該
    原始プログラム上のプログラム行番号をオペランドに指
    定する各種デバッグ指令を解釈して、該目的プログラム
    の実行デバッグのためのデバッグ制御を行うシステムに
    おいて、 該コンパイラ(2)は、該デバッグ情報(4)を生成する場合
    に、該原始プログラムに定義された展開機能部を引用し
    て定義内容に置き換えた結果の展開部分について、引用
    関係、及び該展開部分内のプログラム行と目的プログラ
    ムとの対応を示す情報を引用関係情報(6)として該デバ
    ッグ情報に付加し、 該デバッガ(5)は、該デバッグ指令のオペランドとし
    て、該展開部分についての該引用関係を含むプログラム
    行番号が指定された場合に、該デバッグ情報(4)と該引
    用関係情報(6)に基づいて、該展開部分内の指定の該プ
    ログラム行を識別し、該デバッグ制御を行うように構成
    されていることを特徴とするプログラムデバッグ処理方
    法。
JP4195693A 1992-07-23 1992-07-23 プログラムデバッグ処理方法 Expired - Fee Related JP2827724B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4195693A JP2827724B2 (ja) 1992-07-23 1992-07-23 プログラムデバッグ処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4195693A JP2827724B2 (ja) 1992-07-23 1992-07-23 プログラムデバッグ処理方法

Publications (2)

Publication Number Publication Date
JPH0644101A true JPH0644101A (ja) 1994-02-18
JP2827724B2 JP2827724B2 (ja) 1998-11-25

Family

ID=16345430

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4195693A Expired - Fee Related JP2827724B2 (ja) 1992-07-23 1992-07-23 プログラムデバッグ処理方法

Country Status (1)

Country Link
JP (1) JP2827724B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6593844B1 (en) 1998-10-16 2003-07-15 Matsushita Electric Industrial Co., Ltd. PTC chip thermistor

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6593844B1 (en) 1998-10-16 2003-07-15 Matsushita Electric Industrial Co., Ltd. PTC chip thermistor

Also Published As

Publication number Publication date
JP2827724B2 (ja) 1998-11-25

Similar Documents

Publication Publication Date Title
EP0785510B1 (en) Program debugging system for debugging a program having a graphical user interface
US11579856B2 (en) Multi-chip compatible compiling method and device
JPH08202545A (ja) ターゲット言語コードを生成するためのオブジェクト指向システム及びその方法
JP2827724B2 (ja) プログラムデバッグ処理方法
JP2002288004A (ja) プログラムソース処理装置、プログラムソース処理方法、およびプログラムソース処理プログラム
JPH05334096A (ja) 言語翻訳プログラム及びその出力結果を用いるデバッグ装置
WO2024069730A1 (ja) デバッグ装置及びデバッグ方法
JP2751423B2 (ja) プログラムデバッグ処理方式
JPH0327453A (ja) プログラム文指定処理方式
JPS61180342A (ja) 高級言語のステツプ実行方式
JP3085309B2 (ja) デバッグシステム
JP2607975B2 (ja) デバック方式
US7627859B2 (en) Method for configuring non-script language library files to be run as scripts
JPH05108372A (ja) コンパイラ最適化処理内容の出力方式
JPH05216719A (ja) デバッガのブレイク方法およびデバッガ
JP3130421B2 (ja) プログラム解析方法および装置
JP3098501B2 (ja) ソースステップ実行方法およびその装置
JPS63223931A (ja) 論理図実行ル−ト出力処理方式
JPS63223928A (ja) 論理図デバツグ処理方式
JPH0822401A (ja) プログラム実行中断方法およびデバッギング装置
JPS63178341A (ja) プログラムデバツグ方式
JPH09305411A (ja) コンパイル型プログラムのプログラム実行装置
JPH06119203A (ja) デバック行削除装置
JPS63205740A (ja) プログラム実行トレ−ス処理方式
JPH08179960A (ja) デバッガ

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 19980818

LAPS Cancellation because of no payment of annual fees