JPH01166228A - 末通過チェックポイント自動検出デバッグ方式 - Google Patents

末通過チェックポイント自動検出デバッグ方式

Info

Publication number
JPH01166228A
JPH01166228A JP62325677A JP32567787A JPH01166228A JP H01166228 A JPH01166228 A JP H01166228A JP 62325677 A JP62325677 A JP 62325677A JP 32567787 A JP32567787 A JP 32567787A JP H01166228 A JPH01166228 A JP H01166228A
Authority
JP
Japan
Prior art keywords
checkpoint
under test
automatic
program under
execution
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
JP62325677A
Other languages
English (en)
Inventor
Nobuo Fujioka
藤岡 伸男
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 JP62325677A priority Critical patent/JPH01166228A/ja
Publication of JPH01166228A publication Critical patent/JPH01166228A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は対話式デバッグ機構を使用してプログラムのデ
バッグを行なうデバッグ力弐に関し、特に未通過のチェ
ックポイントを自動的に検出させながらデバッグを行な
うことができる未通過チェックポイント自動検出デバッ
グ方式に関する。
〔従来の技術〕
プログラムを新規に開発した場合などにおいては、その
プログラムが所期の目的を達成しているか否かを確認す
るために、試験データなどを用いてそのプログラムをデ
バッグすることが行なわれる。このようなデバッグを支
援する機構としては各種の機構が提案乃至実用化されて
いるが、その一つに端末装置などの入出力装置から対話
形式でデバッグを行なうことができる対話式デバッグ対
象がある。
また通常プIffダラムのデバッグは、利用者がデバッ
グ対象となる被テストプログラムの全命令が実行される
ようなテスト項目を予め考え、これらのテスト項目に従
ってデバッグを進める。しかし、被テストプログラムの
全命令をy4u <通過)できるようなテスト項目を事
前に考えることは極めて困難である。そのために、被テ
ストプログラムのテスト網羅率を測定する機構が提案乃
至実用化されている。このテスト網羅率測定機構は、被
テストプログラムの構造を解析し、チェックポイントと
いう計測点をプログラムの各所に自動的に設定し、被テ
ストプログラムの実行時、通過したチェックポイントを
記憶しておき、テスト終了時に通過したチェックポイン
トと未通過なチェックポイントとの場所がわかるような
情報をレポート出力するものである。利用者は、予め考
えたテスト項目に関して対話式デバッグ機構を使用した
デバッグが終了すると、対話式デバッグ機構の使用を停
止し、テスト網羅率測定機構によりテスト′!A羅率を
計測させ、得られたレポート出力から未通過チェックポ
イントを探し出す。そして、その未通過チェックポイン
トを通過するようなテスト項目を新たに考え、再び対話
式デバッグ機構を使用してデバッグを行なう。このよう
な対話式デバッグ機構の使用、テスト網羅率測定機構の
使用を繰り返すことにより、デバッグの完全性の向上に
努めている。
〔発明が解決しようとする問題点〕
上述したように、プログラムのデバッグを支援するため
に、従来より対話式デバッグ機構−、テスト網羅率測定
機構が提供されているが、それらの間には有機的な関連
はなく、各々独立して機能していた。その為、被テスト
プログラムのテスト網羅状態を対話式デバッグ機構の使
用時に直ちに知ることができず、−J’yテスト網羅率
測定機構を起動してテスト網羅状態を得る必要があり、
デバッグを効率良〈実施することが困難であるという問
題点があった。
本発明はこのような事情に鑑みて為されたものであり、
その目的は、対話式デバッグ機構を使用したデバッグに
おいて未通過チェックポイントがあれば、被テストプロ
グラムの実行を中断してその未通過チェックポイントに
関する情報を利用者に通知することができる未通過チェ
ックポイント自動検出デバッグ方式を提供することにあ
る。
c問題点を解決するための手段〕 本発明は上記目的を達成するために、 被テストプログラムのデバッグを対話形式で実施するこ
とができる対話式デバッグ機構を有する情報処理装置に
おいて、 前記被テストプログラムのソースコードをオブジェクト
コードに変換する際、前記オブジェクトコード中の条件
分岐命令の直前に自動中断点を設定すると共に直後にチ
ェックポイントを設定し、該設定した自動中断点、それ
に対応するチエ−)クポイントに関する情報を格納した
チェックポイント管理テーブルを作成するチェックポイ
ント管理テーブル作成手段と、 前記被テストプログラムのオブジェクトコードの実行時
、チェックポイントを通過することにより、1fijl
遇したチェックポイントに対応してその旨を前記チェッ
クポイント管理テーブルに登録するチェツクポイント管
理手段と、 入力装置からのコマンド入力によって設定可能な自動モ
ードフラグと、 前記被テストプログラムのオブジェクトコードに設定さ
れた自動中断点の実行時、前記自動モードフラグがオフ
状態であれば中断された被テストプログラムの実行を速
やかに再開し、オン状態であれば該自動中断点に対応す
るチエ7クポイントの通過状況を前記チェックポイント
管理テーブルを参照することにより判定し、未通過のチ
ェックポイントがあるとき前記被テストプログラムの実
行を中断させたまま該未通過のチェックポイントに関す
る情報を出力装置に出力する中断点自動設定手段とを有
する。
〔作用〕
被テストプログラムをデバッグする為にそのオブジェク
トコードを実行すると、チェックポイント管理テーブル
作成部によって設定されたチェックポイントを1lll
遇する毎に、その旨がチェックポイント管理テーブルに
登録され、逐次テスト網羅状態が計測されていく、また
、被テストプログラムの実行がチェックポイント管理テ
ーブル作成部によって設定された自動中断点に移ると、
被テストプログラムの実行が中断され、制御が中断点自
動設定手段に渡される。中断点自動設定手段は、自動モ
ードフラグがオフ状態であれば直ちに被テストプログラ
ムの実行を再開させるが、オン状態であると、自動中断
点に対応するチエ7クポイントの通過状況が通過法か未
通過かをチェックポイント管理テーブルの内容で判定す
る。そして、自動中断点の設定された条件分岐命令の全
ての分岐先が通過法であれば被テストプログラムの実行
が再開されるが、未通過のチェックポイントが一つでも
あれば被テストプログラムの実行を中断させたまま、そ
の未通過のチェックポイントに関する情報を出力装置に
出力する。この出力情報によって利用者はテスト未完了
部分を知ることができ、その未通過のチェックポイント
を通過するような条件を対話式デバッグ機構が従来から
有する機能を使用して設定することにより、テストm羅
率を容易に高めることができる。
〔実施例〕
次に本発明の実施例について図面を参照して説明する。
第1図は本発明の実施例の構成図であり、対話式デバッ
グ機構1と、中央処理装置2と、主記憶装置3と、コン
パイラ4と、被テストプログラムのソースコードSMを
格納するファイル5と、被テストプログラムのオブジェ
クトコ−10M等を格納するファイル7と、表示装置6
a及び入力装置6bを有する端末装置6とを含む情報処
理装置を示す。
対話式デバッグ機構lは、デバッグコマンド処理部10
.チェックポイント管理部11.中断点自動設定部12
および自動モードフラグ13を含み、デバッグコマンド
処理部10は従来のデバッグコマンド処理手段10aに
加え、チェックポイントiff報表示コマンド処理手段
10bと中断点自動設定モード切換コマンド処理手段t
OCを有する。このような対話式デバッグ機構1は例え
ば対話式デバッグサポートプログラムを使用して実現す
ることが可能である。
コンパイラ4は、チェックポイント管理テーブル作成部
4aを含み、このチェックポイント管理テーブル作成部
4aはファイル5に格納された被テストプログラムのソ
ースコードSMをコンパイルして得たオブジェクトコー
ドOMに後述する自動中断点とチェックポイントを設定
すると共に、それらに関する情報を格納したチェックポ
イント管理テーブルTMを作成する。コンパイラ4で得
られた被テストプログラムのオブジェクトコードOMと
チェックポイント管理テーブルTMはファイル7に格納
され、被テストプログラムの実行時、主記憶装置3に被
テストプログラム3a、チェックポイント管理テーブル
3bとしてロードされる。
中央処理装置2は割込機構2aを有し、このδり送機構
2aは、被テストプログラム3aの実行が自動中断点あ
るいはチェックポイントに達すると、被テストプログラ
ム3aの実行を中断させ、対話式デバッグ機構1に必要
な情報と共に制御を渡す。
次に、本実施例の動作を各図を参照しながら説明する。
(1)コンパイラ4によるコンパイル処理コンパイラ4
はコンパイルが指示されると、ファイル5に格納された
被テストプログラムのソースコードSMを読込み、これ
を解析することにより被テストプログラムのオブジェク
トコードOMを生成する。このとき、コンパイラ4の一
部を構成するチェックポイント管理テーブル作成部4a
は、オブジェクトコードOMに自動中断点とチェックポ
イントを設定すると共に、チェックポイント管理テーブ
ルTMを生成する。
ソースコードSMが例えば第2図に示すように、条件分
岐命令zOを含む場合、チェックポイント管理テーブル
作成部4aは、オブジェクトコ−10M中の条件分岐命
令20に対応する部分の直前に自動中断点21を設定す
ると共に、条件分岐後に実行される文の直前にチェック
ポイント22゜23を設定する。そして、それらの情報
をチェックポイント管理テーブルTMに登録する。
第3図はチェックポイント管理テーブルの構成例を示す
。同図に示すようにチェックポイント管理テーブルは、
作成日を設定するエリア31.被テストプログラム名を
設定するエリア325通過率を設定するエリア33およ
び複数のエリアE1〜Enを有し、各エリアEl−En
はチエツクポインド番号を設定するエントリ341行番
号を設定するエントリ35.対応自動中断点を設定する
エントリ36及び実行回数を設定するエントリ37を含
む0例えば第2図のチェックポイント22゜23に付さ
れたユニークな番号をそれぞれ1,2とし、チェックポ
イント22.23の直後の文のソースコードSMにおけ
る文番号がそれぞれ「40j、r50Jで、自動中断点
21に付されたユニークな番号が「30」とすると、チ
ェックポイント管理テーブル作成部4aは例えば第3図
のエリアE1にチェックポイント22に関する情報とし
てrlJ、  r40J、  r30Jを登録し、エリ
アE2にチェックポイント23に関する情報としてr2
J、  「50」、r30Jを登録する。なお、チェッ
クポイント管理テーブル作成部4aはエリア31には作
成日、エリア32には被テストプログラム名を登録する
が、エリア33及び各エリアEl−Enのエントリ37
には何も登録しない。
コンパイラ4で作成されたオブジェクトコードOM及び
チェックポイント管理テーブルTMはファイル7に格納
され、被テストプログラムの実行時に主記憶装置3にロ
ードされる。
(2)被テストプログラムの対話式デバッグ機構を使用
したデバッグ処理 被テストプログラム3aは中央処理装置2で実行され、
利用者は対話式デバッグ機構1を使用して被テストプロ
グラム3aのデバッグを行なう。
このデバッグの進め方としては各種の方法が考えられる
が、例えば最初は中断点自動設定モードを解除した状態
で予め準備したテスト項目を使用してデバッグを進め、
何回か実行を繰り返しても通過率が向上しなくなった時
点で中断点自動設定モードにし、その後のデバッグを行
なう方法が考えられる。なお、中断点自動設定モードの
設定は入力装置6bから中断点自動設定モード切換コマ
ンドを入力し、中断点自動設定モード切換コマンド処理
手段10cにより自動モードフラグ13をオンにさせる
ことで可能であり、反対に中断点自動設定モードの解除
は入力装置6bから中断点自動設定モード切換コマンド
を入力し、中断点自動設定モード切損コマンド処理手段
10Cにより自動モードフラグ13をオフにさせること
で可能である。
先ず、自動モードフラグ13がオフ状態になっていて中
断点自動設定モードが解除されている時の動作を説明す
る。
中央処理装置2での被テストプログラム3aの実行が自
動中断点たとえば第2図の自動中断点21に達すると、
被テストプログラム3aの実行が中断され、割込機構2
aから自動中断点21の番号を伴う割込みが対話式デバ
ッグ機構1の中断点自動設定部12に発生する。
中断点自動設定部12は割込みが発生すると、例えば第
4図に示すように先ず自動モードフラグ13がオンであ
るか否かを判定する(Sl)。今の場合、自動モードフ
ラグ13はオフであるので、直ちに制御nを戻す(S4
)。従って、被テストプログラム3aの実行は速やかに
再開され、条件分岐命令20が実行される。
条件分岐命令20でどの方向へ分岐するかは、そのとき
与えられているテスト条件によって決まる。いま、チェ
ックポイント22側に分岐したとすると、チェックポイ
ント22が実行され、この時点で被テストプログラム3
aの実行が再び中断し、割込機構2aからチェックポイ
ント22の番号rlJを伴う割込みが対話式デバッグ機
構1のチェックポイント管理部11に発生する。
チェックポイント管理部11は上記の割込みに応答して
例えば第5図の処理を行なう、先ず、チェックポイント
管理テーブル3b中の割込みによって通知されたチェッ
クポイント番号「1」に対応するエリアE1のエントリ
37の実行回数を+IL(311)、次に通過率を更新
する(312)。
この通過率は、全チェックポイント数に対する通過チェ
ックポイント数の割合で求められる。そして、その後制
御を戻す(S13)。これによって、被テストプログラ
ム3aのチェックポイント22の直後の文から実行が再
開される。
以上のような動作が繰り返されることにより、チェック
ポイント管理テーブル3bのエントリ37に登録された
実行回数、エリア33に登録された通過率は、被テスト
プログラム3aに対するデバッグの進み具合に応じて更
新されていく。
上記チェックポイント管理テーブル3bの内容は、入力
装置6bからチエ’7クポイント情報表示コマンドが入
力されたことにより動作するチェックポイント情報表示
コマンド処理手段10bにより、表示装置!!6aに表
示させることができ、その表示内容によって利用者はデ
バッグを進めながら任意の時点で通過率等を知ることが
できる。
次に、自動モードフラグ13がオンされていて中断点自
動設定モードが設定されているときの動作を説明する。
中央処理装置2での被テストプログラム3aの実行が自
動中断点たとえば第2図の自動中断点21に達すると、
被テストプログラム3aの実行が中断され、割込機構2
3から自動中断点21の番号を伴う割込みが対話式デバ
ッグ機構1の中断点自動設定部12に発生ずる。
中断点自動設定部12は割込みが発生すると、第4図に
示したように先ず自動モードフラグ135  がオンで
あるか否かを判定するが(Sl)、今の場合は自動モー
ドフラグ13がオンされているので、チェックポイント
管理テーブル3bにおける割込みによって通知された自
動中断点の番号「30」に対応する全てのエントリ37
の実行回数が「0」より大きいか否かを判定する(S2
)。そして、対応する全てのエントリ37の値がrOJ
より大きければ即ち全てのチェックポイント22゜23
を通過済であれば、制御を戻す(S4)。これによって
被テストプログラム3aの実行は速やかに再開され、条
件分岐命令20が実行される。
一方、自動中断点の番号「30」に対応するエントリ3
7のうち実行回数が「0」のエントリ37があれば即ち
未通過のチェックポイントがあれば、その未通過のチェ
ックポイント番号と行番号とを表示装置6aに表示する
(S3)。例えば、チェックポイント23が未通過であ
れば、チェックポイント23の番号「2」と行番号「5
0」とが表示される。そこで、利用者はこの表示を見て
、未通過のチェックポイントが通過するような条件をデ
バッグコマンドにより従来のデバッグコマンド処理手段
10aに与えることにより設定し、その後中断解除コマ
ンドを従来のデバッグコマンド処理手段10aに与える
ことにより、中断された被テストプログラム3aの実行
を再開させる。これにより、条件分岐命令20から実行
が再開され、未通過なチェックポイント側へ分岐するこ
とになる。
このように中断点自動設定モードにおいては、未通知チ
ェックポイントが存在する条件分岐命令の直前で自動的
に被テストプログラム3aの実行が中断し、未通過チェ
ックポイントに関する情報が表示装置6aに表示される
ので、未通知チェックポイントのみに着目したデバッグ
を効率良〈実施することが可能となる。
〔発明の効果〕
以上説明したように、本発明は、人力装置からのコマン
ド入力によって自動モードフラグをオンしておけば、対
話式デバッグ機構を使用したデバツク中に未通過チェッ
クポイントが存在する条件分岐命令の直前で被テストプ
ログラムの実行が中断されて未通過チェックポイントに
関する情報が出力装置から出力されるので、未通過チェ
ックポイントだけに的を絞ったデバッグ掻作が可能とな
り、プログラムデバッグ時のテス)1i[率を効率良く
向上させることが可能となる。
また、入力JjtTlからのコマンド入力によって自動
モードフラグをオフしておけば、被テストプログラムの
実行が自動中断点に達しても直ぐに再開されるので、予
め想定りまた幾つかの条件を使用した当初のデバッグを
効率良〈実施することができる。
【図面の簡単な説明】
第1図は本発明の実施例の構成図、 第2図は自動中断点とチェックポイントの設定箇所の説
明図、 第3図はチェックポイント管理テーブル3bの構成例を
示す図、 第4図は中断点自動設定部12の処理例の流れ図および
、 第5図はチェックポイント管理部11の処理例の流れ図
である。 図において、 1・・・対話式デバッグ機構   2・・・中央処理装
置2a・・・割込機構       3・・・主記憶装
置3a・・・被テストプログラム(オブジェクトコード
)3b・・・チェックポイント管理テーブル4・・・コ
ンパイラ 4a・・・チェックポイント管理テーブル作成部5.7
・・・ファイル      6・・・端末装置6a・・
・表示装H6b・・・入力装置10・・・デバッグコマ
ンド処理部 10a・・・従来のデバッグコマンド処理手段10b・
・・チェックポイント情報表示コマンド処理手段 10c・・・中断点自動設定モード切換コマンド処理手
段 11・・・チェックポイント管理部 12・・・中断点自動設定部 13・・・自動モードフラグ

Claims (1)

  1. 【特許請求の範囲】 被テストプログラムのデバッグを対話形式で実施するこ
    とができる対話式デバッグ機構を有する情報処理装置に
    おいて、 前記被テストプログラムのソースコードをオブジェクト
    コードに変換する際、前記オブジェクトコード中の条件
    分岐命令の直前に自動中断点を設定すると共に直後にチ
    ェックポイントを設定し、該設定した自動中断点、それ
    に対応するチェックポイントに関する情報を格納したチ
    ェックポイント管理テーブルを作成するチェックポイン
    ト管理テーブル作成手段と、 前記被テストプログラムのオブジェクトコードの実行時
    、チェックポイントを通過することにより、該通過した
    チェックポイントに対応してその旨を前記チェックポイ
    ント管理テーブルに登録するチェックポイント管理手段
    と、 入力装置からのコマンド入力によって設定可能な自動モ
    ードフラグと、 前記被テストプログラムのオブジェクトコードに設定さ
    れた自動中断点の実行時、前記自動モードフラグがオフ
    であれば中断された被テストプログラムの実行を速やか
    に再開し、オンであれば該自動中断点に対応するチェッ
    クポイントの通過状況を前記チェックポイント管理テー
    ブルを参照することにより判定し、未通過のチェックポ
    イントがあるとき前記被テストプログラムの実行を中断
    させたまま該未通過のチェックポイントに関する情報を
    出力装置に出力する中断点自動設定手段とを含むことを
    特徴とする未通過チェックポイント自動検出デバッグ方
    式。
JP62325677A 1987-12-23 1987-12-23 末通過チェックポイント自動検出デバッグ方式 Pending JPH01166228A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP62325677A JPH01166228A (ja) 1987-12-23 1987-12-23 末通過チェックポイント自動検出デバッグ方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP62325677A JPH01166228A (ja) 1987-12-23 1987-12-23 末通過チェックポイント自動検出デバッグ方式

Publications (1)

Publication Number Publication Date
JPH01166228A true JPH01166228A (ja) 1989-06-30

Family

ID=18179483

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62325677A Pending JPH01166228A (ja) 1987-12-23 1987-12-23 末通過チェックポイント自動検出デバッグ方式

Country Status (1)

Country Link
JP (1) JPH01166228A (ja)

Similar Documents

Publication Publication Date Title
US7178135B2 (en) Scope-based breakpoint selection and operation
JPH07295859A (ja) プログラムの動的特性の決定
JPH0748182B2 (ja) プログラム・エラー検出方法
JPH01166228A (ja) 末通過チェックポイント自動検出デバッグ方式
US20030018957A1 (en) Debugger monitor with anticipatory highlights
JPH03113648A (ja) プログラムデバツグ方式
JPS63289654A (ja) プログラム分岐命令モニタ方式
JPH03294934A (ja) 高級プログラム言語用デバッガ
US20050015677A1 (en) Method of executing a computer program
JPH06266420A (ja) プログラマブルコントローラ
JP2000284989A (ja) デバッグ装置
JPH01205348A (ja) プログラムデバッグ方式
Zhao et al. Semantics of RxJS
JP2800577B2 (ja) デバッグ装置
JPS63104150A (ja) プログラムデバツグ方式
JP2002073370A (ja) デバッグ支援装置およびその装置によるデバッグ方法
JPH0410098B2 (ja)
JPS63205740A (ja) プログラム実行トレ−ス処理方式
JPH02271434A (ja) 利用者プログラムの自動トレース方式
JPH07319730A (ja) テスト・デバッグ方法
JPH05204698A (ja) デバッガ処理方式
JPH04310139A (ja) コンパイラ言語用デバッグサポートツール
JPH0410139A (ja) 知識ベースを利用した動的バグ検出方式
JPH05313941A (ja) コンピュータプログラムのデバッグ方法
JPH0764819A (ja) デバッグ装置