JP3079238B2 - デバッグ装置 - Google Patents

デバッグ装置

Info

Publication number
JP3079238B2
JP3079238B2 JP04247034A JP24703492A JP3079238B2 JP 3079238 B2 JP3079238 B2 JP 3079238B2 JP 04247034 A JP04247034 A JP 04247034A JP 24703492 A JP24703492 A JP 24703492A JP 3079238 B2 JP3079238 B2 JP 3079238B2
Authority
JP
Japan
Prior art keywords
execution
program
instruction
interruption point
break point
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
JP04247034A
Other languages
English (en)
Other versions
JPH0695917A (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 JP04247034A priority Critical patent/JP3079238B2/ja
Publication of JPH0695917A publication Critical patent/JPH0695917A/ja
Application granted granted Critical
Publication of JP3079238B2 publication Critical patent/JP3079238B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、プログラムの実行を中
断させる中断点を指定するデバッガ装置であって、利用
者プログラムを指定した位置まで実行する機能を実現す
るデバッガ装置に関するものである。
【0002】
【従来の技術】従来のデバッガは、利用者が指定した位
置まで利用者プログラムを実行して中断する場合、利用
者が使用し易いようにその指定方法にある程度の柔軟性
を持たせている。例えば具体的に利用者プログラムの
“1000行目の行”まで実行と指定する他に、“次に
中断点を実行する行”まで実行などという指定を許して
いる。
【0003】
【発明が解決しようとする課題】このため、デバッガの
処理において、利用者が指定した位置を厳密に求めるこ
とが困難になっている。例えば現在中断している位置が
IF文の場合、“次に実行する位置まで実行”と指定さ
れた場合、次に実行する位置がTHEN節になるのかE
LSE節になるのかはIF文の条件式の状態によるた
め、求めることが難しい。
【0004】そこで、デバッガは、利用者の指定した位
置に該当するであろう位置の全てに中断点を設定し、利
用者プログラムを実行させ、設定した中断点のいずれか
で利用者プログラムが中断した場合に、設定した中断点
を全て削除するということを行っていた。
【0005】そのため、実行中断点指定の指示があった
場合、その指定に該当するであろう全ての位置に中断点
を設定し、そのうちのいずれかに中断したら全ての中断
点を削除する。再び実行中断点指定の指示があった場
合、また該当するであろう全ての位置に中断点を設定す
るということを繰り返していた。
【0006】従って、利用者の指定した位置に該当する
であろう位置が多数あればある程、毎回中断点の設定お
よび削除を繰り返すために実行中断点指定の機能の性能
を低下させてしまうという問題があった。
【0007】本発明は、これらの問題を解決するため、
実行中断点指定実行有効フラグを設けて指定に対応して
該当するであろう全ての位置に中断点を設定およびフラ
グを有効にし、次のサブコマンドの入力時にそのまま再
利用、指定された中断点を設定、あるいは中断点を削除
し、中断点の設定処理を高速化することを目的としてい
る。
【0008】
【課題を解決するための手段】図1を参照して課題を解
決するための手段を説明する。図1において、デバッグ
情報8は、デバッグ対象のプログラム6の中断点設定の
可否を格納した情報である。
【0009】実行中断点指定実行有効フラグ9は、デバ
ッグ対象のプログラム6に中断点が設定されているか否
かを表すフラグである。中断点(NEXT)は、次に中
断するであろう全ての位置に設定した中断点である。
【0010】中断点(AT)は、指示された位置に設定
した中断点である。
【0011】
【作用】本発明は、図1に示すように、利用者から実行
中断点指定実行指示(NEXT)に対応して、実行中断
点指定実行有効フラグ9が無効のときにデバッグ情報8
で中断点設定が可となっている全ての行に中断点(NE
XT)を設定および有効にセットした後、プログラム6
を実行して中断点で中断し、一方、有効のときにプログ
ラム6を実行して中断点で中断するようにしている。
【0012】また、利用者から利用者中断点設定指示
(AT)に対応して、指示された行番号の位置に中断点
(AT)を設定するようにしている。また、利用者から
実行再開指示(GO)に対応して、全ての中断点(NE
XT)を削除および実行中断点指定実行有効フラグ9を
無効に設定した後、プログラム6の実行を再開し、中断
点(AT)で中断あるいは中断せずに処理を終了するよ
うにしている。
【0013】また、中断点の設定として、プログラム6
の該当位置にデバッガを呼び出すSVC命令を埋め込む
および元の命令を退避し、中断点の削除として、SVC
命令を退避した元の命令に戻すようにしている。
【0014】従って、実行中断点指定実行有効フラグ9
を設けて指定に対応して該当するであろう全ての位置に
中断点を設定およびフラグ9を有効にし、次のサブコマ
ンドの入力時にそのまま再利用したり、指定された中断
点(AT)を設定したり、あるいは中断点を削除したり
することにより、中断点の設定処理を高速化することが
可能となる。
【0015】
【実施例】次に、図1から図5を用いて本発明の実施例
の構成および動作を順次詳細に説明する。
【0016】図1は、本発明の1実施例構成図を示す。
図1において、入力部1は、各種指示などを入力するも
のであって、ここでは、実行中断点指定実行指示(NE
XT)2、利用者中断点設定指示(AT)3、および実
行再開指示(GO)4などである。
【0017】実行中断点指定実行指示2は、デバッグ対
象のプログラム6中に、次に中断するであろう全ての位
置に中断点を設定する指示(例えばNEXT)である。
中断点の設定は、デバッグ対象のプログラム6の指定さ
れた位置にデバッガの呼び出し命令(SVC命令)を埋
め込むと共に元の命令を退避することである。
【0018】利用者中断点設定指示3は、利用者が指定
した位置に中断点を設定する指示である。例えば100
0行目に中断点を設定する指示(例えばAT)である。
実行再開指示4は、利用者が中断した状態からプログラ
ム6の実行を再開する指示(例えばGO)である。
【0019】デバッガ処理部5は、デバッグを行うもの
であって、ここでは、入力部1からの各種指示に対応し
て、デバッグ対象のプログラム6に中断点を設定した
り、削除したり、実行させたりなどするものである。
【0020】プログラム6は、デバッグ対象のプログラ
ムであって、例えば図2に示すような利用者プログラム
である。メモリ7は、各種データを格納するものであっ
て、ここではデバッグ情報8を格納するものである。
【0021】実行中断点指定実行有効フラグ9は、実行
中断点指定実行指示2に対応して設定された中断点(N
EXT)が有効か、無効かを設定するフラグである。図
2は、本発明の利用者プログラム例を示す。左側の数字
は、行番号であって、例えば000100は行番号が1
00行である。
【0022】000100 IDENTIFICATION DIVISION. は行番号100以下に定義節を記述する旨が記載されて
いる。同様に、行番号800以下に手続節を記述する旨
が記載されている。
【0023】図3は、本発明のデバッグ情報例を示す。
これは、行番号に対応づけて、中断点を設定すること
が、“不可”あるいは“可能”の区別を設定したもので
ある。利用者が実行中断点指定実行指示2を行ったこと
に対応して、次に中断するであろう全ての位置に中断点
を設定ときに、当該デバッグ情報例中に“可能”として
ある行番号に中断点を設定する。例えば行番号1000
には中断点を設定し、行番号2200には中断点を設定
しない(中断するであろう位置に該当しないから中断点
を設定しない)。
【0024】図4は、本発明に係わるフラグおよび指示
例を示す。図4の(a)は、実行中断指定実行有効フラ
グ例を示す。この実行中断指定実行有効フラグ9は、実
行中断指定実行指示2に対応して、デバッグ情報8を参
照して中断点設定可能と設定してある行番号の位置に中
断点が設定してあるときに“有効”、一方、設定してな
いときに“無効”を設定する(図5を用いて後述す
る)。
【0025】図4の(b)は、実行中断点指定実行指示
例を示す。この実行中断点指定実行指示2は、サブコマ
ンド名が例えば“NEXT”であって、デバッグ対象の
プログラム6の現在の位置から次に中断するであろう全
ての位置に中断点を設定する旨のサブコマンドである。
具体的には、図3のデバッグ情報8の例に“可能”と設
定されている位置(行番号)に中断点を設定する(即ち
SVC命令を埋め込んでデバッグ処理部5に制御が渡る
ように設定および元の命令を退避する)。
【0026】図4の(c)は、利用者中断点設定指示例
を示す。この利用者中断点設定指示3は、サブコマンド
名が例えば“AT”であって、デバッグ対象のプログラ
ム6中の、オペランドで指定した行に中断点を設定す
る。ここでは、行番号1300の位置に中断点を設定す
る。
【0027】図4の(d)は、実行再開指示例を示す。
この実行再開指示4は、サブコマンド名が例えば“G
O”であって、デバッグ対象のプログラム6中の中断し
た位置から実行を再開する指示である。
【0028】次に、図5のフローチャートに示す順序に
従い、図1の構成の動作を詳細に説明する。図5におい
て、S1は、実行中断点指示実行有効フラグ9を「無
効」に初期化する。これは、デバッグ対象のプログラム
6のデバッグの開始に先立ち、実行中断点指定実行有効
フラグ9を「無効」に設定し、中断点(NEXT)が設
定されていないと初期設定する。
【0029】S2は、サブコンマンドの入力を行う。こ
れは、サブコマンドとして、図4に記載した“NEX
T”、“AT”、“GO”などを利用者が図1の入力部
1から入力する。
【0030】S3は、サブコマンド名がNEXT、A
T、あるいはGOのいずれか判別する。NEXTの場合
には、実行中断点指定実行指示2が入力されたので、S
4からS8によって、中断点(NEXT)の設定、実行
中断点指定実行有効フラグ9が無効のときに有効に設
定、および利用者プログラム(プログラム6)の実行を
再開などする。また、ATの場合には、利用者中断点設
定指示3が入力されたので、S9によって、オペランド
で指定された行番号の位置に中断点(AT)を設定す
る。また、GOの場合には、実行再開指示4が入力され
たので、S10からS12、S7、およびS8によっ
て、実行中断点指定実行有効フラグ9が有効のときに全
ての中断点(NEXT)を削除および実行中断点指定実
行有効フラグ9を無効にした後、利用者プログラム(プ
ログラム6)の実行を再開する。以下説明する。
【0031】S4は、S3でサブコマンド名として“N
EXT”が入力されたと判明したので、実行中断点指定
実行有効フラグ9が有効か無効かを判別し、有効のとき
にS7に進み、無効のときにS5に進む。
【0032】S5は、S4で実行中断点指定実行有効フ
ラグ9が無効と判別されたので、中断点が設定可能な全
ての行にNEXTの中断点(NEXT)を設定する。こ
れは、具体的には、図3のデバッグ情報例の中断点設定
に“可能”と設定されている行番号の位置に中断点(N
EXT)を設定する(具体的にはSVC命令を埋め込む
と共に元の命令を退避する)。
【0033】S6は、実行中断点指定実行有効フラグ9
を“有効”に設定する。これにより、中断点(NEX
T)が有効に設定されている旨を記憶し、次回に再利用
するために設定した旨を記憶しておく。
【0034】S7は、利用者プログラム(プログラム
6)の実行を再開する。これは、S5およびS6で中断
点(NEXT)の設定および実行中断点指定実行有効フ
ラグ9を有効にした後(あるいは前回に既に設定されて
いた場合)、利用者プログラムの実行を再開する。
【0035】S8は、NEXTまたはATの中断点で中
断したか判別する。中断した場合には、S2に戻る。中
断しない場合には、利用者プログラムの終わりまで実行
し、終了する。
【0036】以上のS3でサブコマンド名“NEXT”
が入力された場合、S4からS8によって、実行中断点
指定実行有効フラグ9が“有効”のときは以前に設定さ
れていた中断点(NEXT)を再利用して設定の手間を
削減できる。一方、初回で実行中断点指定実行有効フラ
グ9が”無効”のときは中断点(NEXT)を設定およ
び実行中断点指定実行有効フラグ9を“有効”に設定す
る。
【0037】次に、S9は、S3でサブコマンド名とし
て“AT”が入力されたと判明したので、“AT”(利
用者中断点設定指示3)のオペランドで指定された行番
号の位置にATの中断点(AT)を設定する。これは、
例えば図4の(c)のサブコマンド名“AT”の場合に
は、パラメタで指定された行番号“1300”の行に中
断点(AT)を設定する。そして、S2に戻る。
【0038】以上のS3でサブコマンド名“AT”が入
力された場合、S9によって、オペランドで指定された
行番号の位置に中断点(AT)を設定する。これによ
り、利用者が個別に指示した行に中断点(AT)を設定
することが可能となる。
【0039】S10は、S3でサブコマンド名として
“GO”が入力されたと判明したので、実行中断点指定
実行有効フラグ9が有効か無効かを判別し、有効のとき
にS11に進み、無効のときにS7に進む。
【0040】S11は、S10で実行中断点指定実行有
効フラグ9が有効と判別されたので、全てのNEXTの
中断点(NEXT)を削除する。S12は、実行中断点
指定実行有効フラグ9を無効に設定する。そして、S7
に進む。
【0041】S7は、利用者プログラム(プログラム
6)の実行を再開する。これは、S11およびS12で
中断点(NEXT)の削除および実行中断点指定実行有
効フラグ9を無効にした後、利用者プログラムの実行を
再開する。
【0042】S8は、ATの中断点で中断したか判別す
る。中断した場合には、S2に戻る。中断しない場合に
は、利用者プログラムの終わりまで実行し、終了する。
以上のS3でサブコマンド名“GO”が入力された場
合、S10からS12、S7、およびS8によって、実
行中断点指定実行有効フラグ9が“有効”のときは中断
点(NEXT)を削除し、実行を再開する。これによ
り、サブコマンド名“NEXT”で設定した中断点(N
EXT)を削除および実行中断点指定実行有効フラグ9
を無効にすることができる。
【0043】次に、図5のフローチャートに従って具体
例について説明する。 (1) 1回目のサブコマンド名“NEXT”を入力す
る。 サブコマンド名“NEXT”(実行中断点指定実行指
示)を入力すると、デバッガ処理部5は、実行中断点指
定実行有効フラグ9が“無効”になっているか調べる。
1回目は、無効になっているので、図3のデバッグ情報
8の中断点設定が“可能”になっている全ての行に中断
点(NEXT)を設定、および実行中断点指定実行有効
フラグ9を“有効”にする。利用者プログラム(プログ
ラム6)の実行を再開すると、1000行に中断する。
【0044】(2) 2回目のサブコマンド名“NEX
T”を入力する。 サブコマンド名“NEXT”(実行中断点指定実行指
示)を入力すると、デバッガ処理部5は、実行中断点指
定実行有効フラグ9を調べる。ここでは、有効になって
いるので、利用者プログラム(プログラム6)の実行を
再開すると、1100行に中断する。
【0045】(3) 3回目のサブコマンド名“AT
1300”を入力する。 サブコマンド名“AT”(利用者中断点設定指示)を入
力すると、デバッガ処理部5は、オペランドで指定され
た行番号1300に該当する行をデバッグ情報8から探
し、その位置に中断点(AT)を設定する。
【0046】(4) 4回目のサブコマンド名“GO”
を入力する。 サブコマンド名“GO”(実行再開指示)を入力する
と、デバッガ処理部5は、実行中断点指定実行有効フラ
グ9を調べる。ここでは、有効になっているので、図3
のデバッグ情報8の中断点設定が“可能”になっている
全ての行に設定されている中断点(NEXT)を削除し
た後、実行中断点指定実行有効フラグ9を“無効”にす
る。利用者プログラム(プログラム6)の実行を再開す
ると、ここでは、1300行に中断する。
【0047】(5) 5回目のサブコマンド名“GO”
を入力する。 サブコマンド名“GO”(実行再開指示)を入力する
と、デバッガ処理部5は、実行中断点指定実行有効フラ
グ9を調べる。ここでは、無効になっているので、利用
者プログラム(プログラム6)の実行を再開すると、こ
こでは中断点に到達しないため終了する。
【0048】
【発明の効果】以上説明したように、本発明によれば、
実行中断点指定実行有効フラグ9を設けて指定に対応し
て該当するであろう全ての位置に中断点(NEXT)を
設定および実行中断点指定実行有効フラグ9を有効に
し、次のサブコマンドの入力時にそのまま再利用した
り、指定された中断点(AT)を設定したり、あるいは
中断点を削除したりする構成を採用しているため、デバ
ッグ処理時の中断点の設定処理を高速化することができ
る。特に、サブコマンド名“NEXT”を入力して中断
する可能性のある全ての行に中断点(NEXT)を設定
および実行中断点指定実行有効フラグ9を有効に設定
し、次回のサブコマンド名“NEXT”の入力時に再利
用し、従来の毎回、中断点(NEXT)の設定および削
除を行う無駄な処理を無くし、高速化を図ることができ
る。
【図面の簡単な説明】
【図1】本発明の1実施例構成図である。
【図2】本発明の利用者プログラム例である。
【図3】本発明のデバッグ情報例である。
【図4】本発明に係わるフラグおよび指示例である。
【図5】本発明の動作説明フローチャートである。
【符号の説明】
1:入力部 2:実行中断点指定実行指示(NEXT) 3:利用者中断点設定指示(AT) 4:実行再開指示(GO) 5:デバッガ処理部 6:デバッグ対象のプログラム(利用者プログラム) 7:メモリ 8:デバッグ情報 9:実行中断点指定実行有効フラグ

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項1】ソースプログラムの各行に対応してそれぞ
    れ中断点の設定が可能か否かを管理するデバッグ情報を
    格納するデバッグ情報格納部と、 前記デバッグ情報格納部に格納されているデバッグ情報
    で管理されるソースプログラムの各行に対応して設定さ
    れる中断点が有効であるか否かを管理する実行中断点指
    定実行有効フラグを格納する実行中断点指定実行有効フ
    ラグ格納部と、 実行中断点指定実行指示に対応して、前記実行中断点指
    定実行有効フラグが無効の場合に前記デバッグ情報格納
    部に格納されているデバッグ情報に基づいて中断点の設
    定を行い前記実行中断点実行有効フラグを有効に設定し
    た後にプログラムを実行し、前記実行中断点指定実行有
    効フラグが有効の場合に中断点の設定を行うことなくプ
    ログラムを実行するプログラム実行部とを有するデバッ
    グ装置
  2. 【請求項2】利用者中断点設定指示に対応して、指示さ
    れた行番号の位置に第二の種別の中断点を設定する利用
    者中断点設定部を有する請求項1記載のデバッグ装置
  3. 【請求項3】実行再開指示に対応して、前記プログラム
    実行部で設定された全ての中断点を削除し、前記実行中
    断点指定実行有効フラグを無効に設定し、プログラムを
    実行するプログラム再開部を有する請求項1記載のデバ
    ッグ装置
  4. 【請求項4】中断点設定位置の命令を退避し該位置にデ
    バッガを呼び出す命令を埋め込むことにより中断点を設
    定する中断点設定処理部と、 前記中断点設定処理部により退避された命令を元の位置
    に復元することで中断点を削除する中断点削除処理部と
    を有する請求項3記載のデバッグ装置
JP04247034A 1992-09-17 1992-09-17 デバッグ装置 Expired - Fee Related JP3079238B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP04247034A JP3079238B2 (ja) 1992-09-17 1992-09-17 デバッグ装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP04247034A JP3079238B2 (ja) 1992-09-17 1992-09-17 デバッグ装置

Publications (2)

Publication Number Publication Date
JPH0695917A JPH0695917A (ja) 1994-04-08
JP3079238B2 true JP3079238B2 (ja) 2000-08-21

Family

ID=17157430

Family Applications (1)

Application Number Title Priority Date Filing Date
JP04247034A Expired - Fee Related JP3079238B2 (ja) 1992-09-17 1992-09-17 デバッグ装置

Country Status (1)

Country Link
JP (1) JP3079238B2 (ja)

Also Published As

Publication number Publication date
JPH0695917A (ja) 1994-04-08

Similar Documents

Publication Publication Date Title
JP2526688B2 (ja) プログラマブルコントロ―ラおよびシ―ケンスプログラムの部分実行方法
JP3079238B2 (ja) デバッグ装置
JP2922723B2 (ja) 情報処理装置
JP2003216449A (ja) パッチ処理システム
JPH0644252B2 (ja) プログラムの動的制御システムおよびその方法
JP7444610B2 (ja) コンテキスト・データ管理
JPH04288625A (ja) マイクロコンピュータ
JP2795676B2 (ja) プログラムトレース装置
JPS6210740A (ja) 中断処理制御方法
JP2815638B2 (ja) デバッグ装置
JP2003345747A (ja) 処理実行管理方法、処理実行管理装置、プログラム、及びプログラムを記録した記録媒体
JP3029355B2 (ja) 命令のシングルステップ実行方式
JPH08263317A (ja) チェックポイント/リスタート処理方式
JP3079825B2 (ja) 電子計算機装置
JPS61210440A (ja) レベルトレ−ス装置
JP3260788B2 (ja) ロボット制御装置及び方法
JPH04205144A (ja) マイクロプロセッサ
JPH04105159A (ja) 業務代行方式
JPH06103111A (ja) 情報処理装置のデバッグ方式
JPS63178343A (ja) 中断点の設定方式
JPS6214240A (ja) プログラム検査方式
JPH06332720A (ja) シグナル制御方法
JPH0433135A (ja) プログラムのデバッグ方式
JPH01211048A (ja) プログラムの実行命令数測定方式
JPS61241843A (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: 20000425

LAPS Cancellation because of no payment of annual fees