JPH04195549A - デバッグ処理方式 - Google Patents

デバッグ処理方式

Info

Publication number
JPH04195549A
JPH04195549A JP2327949A JP32794990A JPH04195549A JP H04195549 A JPH04195549 A JP H04195549A JP 2327949 A JP2327949 A JP 2327949A JP 32794990 A JP32794990 A JP 32794990A JP H04195549 A JPH04195549 A JP H04195549A
Authority
JP
Japan
Prior art keywords
debugger
debug
program
identification number
debugged
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
JP2327949A
Other languages
English (en)
Inventor
Susumu Umatani
馬谷 晋
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 JP2327949A priority Critical patent/JPH04195549A/ja
Publication of JPH04195549A publication Critical patent/JPH04195549A/ja
Pending legal-status Critical Current

Links

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野] 本発明は、デバッガによるデバッグ処理方式に関し、特
に被デバッグプログラムの所定の位置に予め挿入された
デバッグ文によりデハング処理を行う方式に関する。
〔背景技術〕
従来より、プログラムに起こる誤り(バグ)を検出、診
断、修正するデバッグ作業は、プログラム作成時等に行
われているが、特に被デバッグプログラムの所定箇所に
予めデバッグ文を挿入し、このデバッグ文によりプログ
ラムの実行時にプログラムの状態をデバッグ情報として
入手する方法が広く行われている。
このようなデバッグ処理方式としては、例えば第3図に
示すような方式が知られている。すなわち、C言語で記
載された被デバッグプログラム100の各単位文101
 、102.1.03.104の中から、デバッグ情報
を入手したい文を予め選択して情報収集箇所を決定する
0例えば、単位文102.103のデバッグ情報を入手
するものとして、第一情報収集箇所31、第二情報収集
箇所32を決定する。
ついで、決定された情報収集箇所、つまり第一情報収集
箇所31、第二情報収集箇所32について、第4図に示
すように、各デバッグ情報を出力するためのデバッグ文
41.42を挿入して被デバッグプログラム100Aを
形成し、被デバッグプログラム100Aの実行に伴うデ
バッグ文41.42の実行により、所定のデバッグ情報
を入手している。
この際、各デバッグ文41.42には、具体的な処理形
式を設定しておく必要がある。例えば、デバッグ文41
は変数名iの内容を十進数で、また変数名jの内容を十
人進数で出力するよう設定されており、デバッグ文42
は変数名aの内容を小数点表現の十進数で出力するよう
設定されている。
なお、デバッグ文41.42の# if debug文
および#end if文は、これらに挟まれた文はコン
パイル時に消去されるというC言語の条件コンパイル機
能を示している。
〔発明が解決しようとする課題〕
しかしながら、上述した従来のデバッグ処理手段では、
プログラムにデバッグ文を挿入してコーディングを行わ
なければならず、また、デバッグ文には具体的な処理形
式、すなわちデバッグ情報として入手する変数名や出力
形式等を設定しておく必要がある。このため、プログラ
ムコーディング作業に多くの工数を要し、プログラム生
産性も低くなるという欠点がある。
また、被デバッグプログラムの実行に伴い入手されるデ
バッグ情報を変更したい場合には、デバッグ文の挿入箇
所やデバッグ文自体の変更、すなわち被デバッグプログ
ラムを修正しなければならず、作業が煩雑となりデバッ
グ作業□に時間がかかるという欠点がある。
本発明は、上記欠点を解消するためになされたもので、
入手されるデバッグ情報の変更が容易に行えるデバッグ
処理方式を提供することを目的とする。
〔課題を解決するための手段〕
本発明のデバッグ文処理方式は、被デバッグプログラム
の実行を任意の箇所で中断し、その時点の被デバッグプ
ログラムの状態をデバッグ情報として入手し、再び被デ
バッグプログラムの実行を再開するデバッグ処理方式で
あって、前記被デバ・ラグプログラムのデハソグ情報入
手箇所に、デバッガ識別番号で識別されるデバッグ文を
設けるとともに、前記デバッグ情報の入手箇所を、前記
デバッグ文のデバッガ識別番号により設定するデバッガ
識別番号設定手段と、被デバッグプログラム内のデバッ
グ文の実行により起動され、被デバッグプログラムの実
行を中断するデバッガ割込処理手段と、前記デバッガ割
込処理手段により起動され、実行されたデバッグ文に設
定されているデバッガ識別番号を読み取るデバッガ識別
番号読込手段と、該デバッガ識別番号読込手段で読み出
したデバッガ識別番号と前記デバッガ識別番号設定手段
で設定されているデバッガ識別番号とが一致するか否か
を判定する判定手段と、当該判定手段でデバッガ識別番
号が一致していると判定された場合に起動され、被デバ
ッグプログラムのデバッグ情報を入手するデバッグ処理
手段と、デバッグ情報を入手後、あるいは前記判定手段
でデバッガ識別番号が不一致と判定されたときに、被デ
バッグプログラムの実行を再開する被デバッグプログラ
ム実行再開手段と、を備えている。
(作用] このような構成の本発明においては、被デバッグプログ
ラムの任意の箇所に、デバッガ識別番号で識別されるデ
バッグ文を予め設けておく。
また、デバッガ識別番号設定手段により、デバッグ情報
を入手したい箇所に設けられたデバッグ文のデバッガ識
別番号を設定しておく。
ついで、被デバッグプログラムの実行に伴いデバッグ文
が実行されると、デバッガ割込処理手段により被デバッ
グプログラムの実行が中断され、デバッガ識別番号読込
手段により、実行されたデバッグ文のデバッガ識別番号
が読み出される。
このデバッガ識別番号は、判定手段において上記デバッ
ガ識別番号設定手段で設定されたデバッガ識別番号と一
致するかどうか判定され、−iする場合には、デバッグ
処理手段により被デバッグプログラムのデバッグ情報が
人手される。ここで、デバッグ処理手段によるデバッグ
情報の入手方法としては、マニュアル操作により入手し
てもよいし、各デバッガ識別番号毎に入手する変数や形
式等を設定しておいてもよく、デバッガ本来の機能に従
って行えばよい。
また、デバッガ識別番号が一致しない場合、あるいはデ
バッグ情報が入手された後には、被デバッグプログラム
実行再開手段により被デバッグプログラムの実行が再開
される。
このため、デバッガ識別番号の設定を変更するだけでデ
バッグ情報の入手箇所が変更され、またデバッグ処理手
段によりデバッグ情報を入手することで、被デバッグプ
ログラムを修正せずに入手するデバッグ情報の変更を行
え、これらにより前記目的が達成される。
〔実施例〕
次に、本発明の一実施例について図面を参照して説明す
る。
第1図は、本発明の一実施例の構成を示すブロック図で
あり、デハフガ1は、被デバッグプログラム実行手段2
と、デバッガ識別番号設定手段3と、デバッガ割込処理
手段4と、デバッガ識別番号読込手段5と、判定手段6
と、デバッグ処理手段7と、被デバッグプログラム実行
再開手段8とを備えて構成されている。
また、被デバッグプログラム実行手段1で実行される被
デバッグプログラムlOは、C言語で書かれており、各
単位文101.102.103.1..04.105間
の内、単位文102.103.104の後にそれぞれデ
バッグ文11゜12.13が挿入されて構成されている
各デバッグ文11,12.13は、デバッガ識別番号n
(n−1,2,3,・・・)で識別されるデバッガエン
トリ関数debugf (n)を含んで構成されている
尚、デバッグ文11.,12.13の$if debu
g〜1end ifは、C言語の条件コンパイルの指示
であり、コンパイル時に#if debug〜$end
 ifの間のロジy’)を消去せしめる機能を備えてい
る。
次に、このように構成された本実施例の処理動作を第2
図をも参照して説明する。
まず、デバッガ識別番号設定手段3により、被デバッグ
プログラム10に挿入されたデバッグ文11゜12、1
3の内から、デバッグ情報を入手したいデバッグ文のデ
バッガ識別番号nを設定する(ステップ21)。
ついで、被デバッグプログラム実行手段2により被デバ
ッグプログラム10が実行され(ステップ22)、この
実行に伴いデバッグ文が実行されたかが判定され(ステ
ップ23)、デバッグ文11の実行が認識されると、デ
バッガ割込処理手段4が起動され、被デバッグプログラ
ム10の実行が中断される(ステップ24)。
ついで、デバッガ識別番号読込手段5が起動され、実行
されたデバッグ文11のデバッガ識別番号1が読み取ら
れる(ステップ25)1次に、判定手段6により、デバ
ッグ文11のデバッガ識別番号1とデバッガ識別番号設
定手段3により予め設定されたデバッガ識別番号とが比
較される(ステップ26) 。
判定手段6でデバッガ識別番号が一致したと判定される
と、デバッグ処理手段7に制御が移され、デバッグ情報
がマニュアル繰作により入手される(ステップ27)。
なお、デバッグ情報の入手方法は、従来のデバッガと同
様であるため詳細は省略するが、一般のデバッガ機能と
してのメモリの状態やレジスタの状態の表示あるいは変
更等が可能′である。
デバッグ処理手段7によるデバッグ情報の入手後、ある
いは判定手段6でデバッガ識別番号が不一致と判定され
たときには、被デバッグプログラム実行再開手段8が起
動され、被デバッグプログラム実行手段2による被デバ
ッグプログラム10の実行が再開される(ステップ28
)。
その後、ステップ22〜2日のシーケンスが繰り返され
て、順次デバッグ情報が入手される。
このような本実施例によれば、次のような効果がある。
すなわち、デバッグ情報を得るために被デバッグプログ
ラム10の任意の位置に挿入されるデバッグ文を、デバ
ッガ識別番号n”t’識別されるデバッガエントリ関数
debugf (n>を含む形式とし、また、デバッガ
1に、デバッガ識別番号設定手段3、デバッガ識別番号
読込手段5、判定手段6等を設け、デバッガ識別番号の
設定によりデバッグ情報の人手箇所を選択指定すること
ができるようにしたため、デバッグ情報の入手箇所の変
更は、被デバッグプログラム10を修正しなくても、デ
バッガ識別番号設定手段3の設定を変更するだけでよく
、デバッグ情報の入手箇所の変更が極めて容易に行える
また、デバッグ情報の入手は、被デバッグプログラム1
0の実行が中断された状態で、デバッグ処理手段7によ
りマニュアル操作で行われるため、被デバッグプログラ
ム10を修正しなくても、入手する情報の変数名や出力
形式等の変更を柔軟かつ容易に行うことができ、デハソ
グ作業を効率良くjテえる。
さらに、デバッグ情報の入手箇所の変更、設定を容易に
行えるため、プログラムコーディング時にデバッグ文の
挿入箇所を熟慮して設定する必要がなく、例えば、演算
式の次にデバッグ文を挿入しておき、デバッグ処理の実
行に伴い情報の入手箇所を選択していくようにしてもよ
く、プログラムコーディング作業を容易に行なうことが
できる。
また、デバッグ情報の入手変数名や出力形式等は、デバ
ッグ処理手段7において設定すればよく、各デバッグ文
に設定しておくツ・要がないため、プログラムコーディ
ング作業の工数を少なくでき、プログラム生産性も高め
ることができる。
尚、本発明は前記実施例の構成等に限らず、本発明の目
的を達成できる範囲の変形は本発明に含まれるものであ
る。
例えば、前記実施例では、被デバッグプログラム実行手
段2をデバッガ1内に設けていたが、デバッガlの外に
設けてもよく、実施にあたって適宜選択すればよい。
また、デバッグ処理手段7におけるデバッグ情報の入手
方法は、マニュアル操作によるものに限らず、予めデバ
ッガ識別番号に対応した処理形式を設定し自動的にデバ
ッグ情報を入手できるようにしてもよく、デバッガ本来
の機能に従って適宜設定すればよい。
さらに、被デバッグプログラム10としては、C言語の
ものに限らず、本発明はPASCAL等様々な言語で書
かれたプログラムのデバッグ処理に広範に利用できる。
〔発明の効果〕
以上説明したように本発明は、被デバッグプログラムの
任意の位置にデバッガ識別番号で識別されるデバッガ文
を挿入し、デバッグ情報の入手箇所をデバッガ識別番号
により選択するとともに、入手されるデバッグ情報の処
理形式をデバッグ処理手段において設定することにより
、被デバッグプログラムを修正する必要がなく、入手さ
れるデバッグ情報の変更が容易に行えるという効果があ
る。
【図面の簡単な説明】
第1図は本発明の一実施例の構成を示すブロック図、第
2図は同実施例の動作を示すフローチャート、第3図は
従来例の被デバッグプログラムを示す概念図および第4
図は従来方式を示す概念図である。 1・・・デバッガ、2・・・被デバッグプログラム実行
手段、3・・・デバッガ識別番号設定手段、4・・・デ
バッガ割込処理手段、5・・・デバッガ識別番号読込手
段、6・・・判定手段、7・・・デバッグ処理手段、8
・・・被デバッグプログラム実行再開手段、10・・・
被デバッグプログラム、11,12.13・・・デバッ
グ文。

Claims (1)

    【特許請求の範囲】
  1. (1)被デバッグプログラムの実行を任意の箇所で中断
    し、その時点の被デバッグプログラムの状態をデバッグ
    情報として入手し、再び被デバッグプログラムの実行を
    再開するデバッグ処理方式であって、 前記被デバッグプログラムのデバッグ情報入手箇所に、
    デバッガ識別番号で識別されるデバッグ文を設けるとと
    もに、 前記デバッグ情報の入手箇所を、前記デバッグ文のデバ
    ッガ識別番号により設定するデバッガ識別番号設定手段
    と、 被デバッグプログラム内のデバッグ文の実行により起動
    され、被デバッグプログラムの実行を中断するデバッガ
    割込処理手段と、 前記デバッガ割込処理手段により起動され、実行された
    デバッグ文に設定されているデバッガ識別番号を読み取
    るデバッガ識別番号読込手段と、該デバッガ識別番号読
    込手段で読み出したデバッガ識別番号と前記デバッガ識
    別番号設定手段で設定されているデバッガ識別番号とが
    一致するか否かを判定する判定手段と、 当該判定手段でデバッガ識別番号が一致していると判定
    された場合に起動され、被デバッグプログラムのデバッ
    グ情報を入手するデバッグ処理手段と、 デバッグ情報を入手後、あるいは前記判定手段でデバッ
    ガ識別番号が不一致と判定されたときに、被デバッグプ
    ログラムの実行を再開する被デバッグプログラム実行再
    開手段と、 を備えたことを特徴とするデバッグ処理方式。
JP2327949A 1990-11-28 1990-11-28 デバッグ処理方式 Pending JPH04195549A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2327949A JPH04195549A (ja) 1990-11-28 1990-11-28 デバッグ処理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2327949A JPH04195549A (ja) 1990-11-28 1990-11-28 デバッグ処理方式

Publications (1)

Publication Number Publication Date
JPH04195549A true JPH04195549A (ja) 1992-07-15

Family

ID=18204815

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2327949A Pending JPH04195549A (ja) 1990-11-28 1990-11-28 デバッグ処理方式

Country Status (1)

Country Link
JP (1) JPH04195549A (ja)

Similar Documents

Publication Publication Date Title
JP2000122886A (ja) 半導体試験装置のプログラム作成方式
JPS6116100B2 (ja)
JPH04195549A (ja) デバッグ処理方式
JPH0410081B2 (ja)
JPH02220145A (ja) プログラムトレース方式
JPH0756723A (ja) コンパイラ装置
JPH05204698A (ja) デバッガ処理方式
JPH05108372A (ja) コンパイラ最適化処理内容の出力方式
JPH05250221A (ja) シミュレータ実行方式
JPH02307129A (ja) スナップid出力文設定/削除方式
JP2704117B2 (ja) シミュレータ
JPH01211134A (ja) プログラムデバッグ方式
JPH04324525A (ja) プログラム移植支援装置
JP2570119B2 (ja) ソフトウェアシミュレータ
JPS63228341A (ja) プログラム構文チエツク方式
JP2001282573A (ja) デバッガにおける配列データの表示装置
JPH022432A (ja) プログラミング言語依存型開発用装置
JPH0231244A (ja) プログラム検査履歴管理方式
JPH02284239A (ja) 言語処理プログラムの実行方式
JPH06119203A (ja) デバック行削除装置
JPH05216719A (ja) デバッガのブレイク方法およびデバッガ
JPH06250876A (ja) 対話型デバック支援システム
JPS62235641A (ja) プログラム実行制御方式
JPH0327453A (ja) プログラム文指定処理方式
JP2000259403A (ja) パッチ処理装置および方法