JPH05342052A - デバッグ方式 - Google Patents

デバッグ方式

Info

Publication number
JPH05342052A
JPH05342052A JP4145168A JP14516892A JPH05342052A JP H05342052 A JPH05342052 A JP H05342052A JP 4145168 A JP4145168 A JP 4145168A JP 14516892 A JP14516892 A JP 14516892A JP H05342052 A JPH05342052 A JP H05342052A
Authority
JP
Japan
Prior art keywords
predicate
clause
program
break point
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
JP4145168A
Other languages
English (en)
Inventor
Takashi Okamura
隆司 岡村
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.)
KOBE NIPPON DENKI SOFTWARE KK
NEC Software Kobe Ltd
Original Assignee
KOBE NIPPON DENKI SOFTWARE KK
NEC Software Kobe 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 KOBE NIPPON DENKI SOFTWARE KK, NEC Software Kobe Ltd filed Critical KOBE NIPPON DENKI SOFTWARE KK
Priority to JP4145168A priority Critical patent/JPH05342052A/ja
Publication of JPH05342052A publication Critical patent/JPH05342052A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】 【目的】論理型言語処理系のデバッグにおいて、述語ご
とに定義されている節に中断点を設定することにより、
節単位に実行を制御して迅速に詳細なデバッグ作業を行
えるようにする。 【構成】論理型言語処理系のプログラムデバッグ時に、
読み込んだソースプログラムを節の情報を格納した節構
造体を有する述語テーブル形式で述語ごとに記憶し、節
単位の中断点の設定要求に対して述語テーブルを参照し
て述語の節構成をソースプログラム形式で表示し、表示
されたソースプログラムから選択された節に対応する節
構造体に中断点を示すフラグを設定する。実行時には節
構造体を参照してフラグを検出すると実行を中断し実行
トレースを表示する。以上により、従来述語単位でしか
設定できなかった中断点が節単位にも設定でき、述語よ
り小さな単位である節ごとに詳細なデバッグ作業が迅速
に行える。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はデバッグ方式に関し、特
に論理型言語処理系のプログラムデバッグのためにプロ
グラムに中断点を設定するデバッグ方式に関する。
【0002】
【従来の技術】従来、PROLOGのような論理型言語
処理系のデバッガでは、実行制御情報を表すモデルとし
て、Procedure box control f
lowモデル(図8)が多く用いられている。このモデ
ルでは、実行の最小単位は述語であり、述語に対するC
ALL(述語の呼び出し)、EXIT(述語の成功)、
REDO(バックトラックによる述語の再呼び出し)、
FAIL(述語の失敗)の4つのゲートを介して、実行
がどのように行われているかを実行トレース情報として
表示している。このため、中断点の設定できる最小単位
も述語単位のみであった。
【0003】例えば、図2に示すようなソースプログラ
ムを読み込んで、b述語の2番目の節以降(204,2
05)についてデバッグを行う場合には、節単位には中
断点が設定できないため、中断点設定用の組み込み述語
によりb述語に対して中断点を設定してプログラムを実
行する。
【0004】まず、p述語(201)を実行すると、p
述語の呼び出し機能によってa述語(202)が呼び出
され、a述語が成功する。この間の実行トレースの表示
は抑制される。続いて、b述語の1番目の節(203)
を呼び出した時点で、プログラムの実行は中断され、図
9に示すようにb述語に対するCALLの実行トレース
を表示し、コマンド入力待ちの状態となる。すなわち、
述語の呼び出しの先頭でプログラムの実行は中断され
る。実行トレース表示の左端の「*」は、中断点で停止
したことを示している。
【0005】次に、デバッガコマンドを入力してb述語
の1番目の節を実行させ、図10に示すように、本体部
(fail)の実行トレース表示を逐一確認しながら、
b述語の2番目の節(204)の最初の本体部のc述語
を呼び出す時点まで進める。これで、実行トレース表示
を確認しながら目的の節が呼び出されたことになる。こ
こから、デバッガコマンドを入力することによって、目
的の節以降のより詳しいデバッグ作業を進めていた。
【0006】
【発明が解決しようとする課題】上述したように、従来
のデバッグ方式では、述語単位での中断点の設定しかで
きなかったため、述語の2番目以降の節からデバッグを
行いたい場合でも、その述語の1番目の節の呼び出し時
点で停止させ、実行トレース表示を確認しながら目的の
節まで進める必要があり、実際にデバッグしようとする
節の位置に進むまでに時間と手間とを要するという問題
点があった。
【0007】本発明の目的は、述語単位でなく任意の節
に中断点を設定でき、任意の節からデバッグ作業を効率
的に行えるデバッグ方式を提供することにある。
【0008】
【課題を解決するための手段】本発明のデバッグ方式
は、論理型言語処理系のプログラムデバッグのためにプ
ログラムに中断点を設定するデバッグ方式において、読
み込んだソースプログラムを節の情報を格納した節構造
体を有する述語テーブル形式で述語ごとに記憶するプロ
グラム記憶手段と、節単位の中断点の設定要求に対し前
記述語テーブルを参照して述語の節構成をソースプログ
ラム形式で表示し、表示されたソースプログラムから選
択された節に対応する前記節構造体に中断点を示すフラ
グを設定するプログラム中断点設定手段と、プログラム
の実行時に前記節構造体を参照して前記フラグを検出す
ると実行を中断して実行トレースを表示する実行トレー
ス表示手段とを備えて構成されている。
【0009】
【実施例】次に、本発明の実施例について図面を参照し
て説明する。
【0010】図1は本発明の一実施例における中断点設
定処理の手順を示すフローチャートである。以下、前述
した図2のソースプログラムのb述語の2番目の節に中
断点を設定する場合について、図1のフローチャートに
沿って説明する。
【0011】まず、ファイルを読み込むための組み込み
述語を実行して、ソースプログラム(図2)をインタプ
リタ内部へ読み込む(ステップ101)。このとき、述
語ごとに読み込みが行われ、デバッグするための形式に
変換してインタプリタ内部の記憶領域に格納される。
【0012】図3は記憶領域への格納形式を示す説明図
で、b述語の例を示している。述語が読み込まれると、
まず述語テーブル310が生成される。その述語に節が
存在する場合には、節ごとに節構造体320,330を
作成し、述語テーブル310のポインタ部311に、1
番目の節の節構造体320へのポインタを設定する。各
節構造体320,330の最初の部分には、節の頭部
(図2の「:」の前の部分)に関する情報として、ポイ
ンタ部321,331には次の節の節構造体へのポイン
タが、フラグ部322,332には中断点が設定されて
いるか否かの情報が格納される。最後部の本体格納部3
23,333には、各節の本体部(図2の「:」の後の
部分)に関する情報が格納される。なお、述語テーブル
310のフラグ部312には、従来と同じ述語単位での
中断点の設定情報が格納される。述語テーブル310が
作成された時点では、各フラグ部312,322,33
2には初期値として0値を設定する(0値は中断点が設
定されていないことを意味する)。
【0013】このようにして読み込んだプログラムは、
そのまま実行させると、インタプリタのもとで解釈され
中断することなく順次実行される。
【0014】次に、中断点の設定操作を選択してデバッ
グコマンドを入力すると(ステップ102)、設定した
い中断点は従来からの述語単位であるか節単位であるか
の選択を要求する表示が出る(ステップ103)。ここ
で節単位の設定を選択すると(ステップ104)、図4
に示すソースプログラムを表示する述語名の入力画面が
表示され、中断点を設定する節の属する述語名の入力を
要求してくる(ステップ105)。そこで、中断点を設
定したい節の属する述語名「b/0」を入力すると(ス
テップ106)、指定したb述語のソースプログラム
が、述語テーブル及び節構造体を参照して、図5に示す
ように表示される(ステップ107)。
【0015】次に、中断点を設定したいと考えているb
述語のソースプログラムの2番目の節の頭部(図5中に
アンダーラインを付して示したb)を選択して指定する
(ステップ108)。デバッガはこの指定に対して、ま
ず述語名を基にb述語の述語テーブル310を検索し、
述語テーブル310から2番目の節の節構造体330を
見付け出し、そのフラグ部332に中断点を示す値(0
以外の整数値)を設定する(ステップ109)。そし
て、図5のソース表示のb述語の2番目の節の頭部のb
を反転表示する(ステップ110)。
【0016】以上の操作によって、b述語の2番目の節
に中断点が設定される。このプログラムを実行すると、
インタプリタは中断点が設定されているかどうかを確認
しながら節ごとに述語の評価を行っていき、中断点の設
定された節が呼び出されるとプログラムの実行を停止す
る。
【0017】次に、節単位に設定した中断点で実行を中
断する処理について説明する。節に中断点を設定した
後、次の中断点まで停止しないコマンドでプログラムを
実行すると、インタプリタは、次に実行する節の節構造
体のフラグ部の値を取り出す。その値が中断点を示す
(0以外の値が設定されている)場合、その節を呼び出
した時点でその節の述語の評価に移らずに、実行トレー
スの表示をデバッグ情報として表示し、デバッガに移行
してデバッグコマンド入力持ちの状態になる。フラグ部
の値が中断点を示していなければ、実行トレースの表示
を行わず、プログラムの実行を停止せずにその節の実行
を継続していく。
【0018】以上の内容を、先に節に中断点を設定した
図2のプログラムについて具体的に説明する。但し、デ
バッグのためにプログラムの先頭では実行トレースの表
示を行うように設定された状態で実行されるものとす
る。
【0019】まず、先頭のp述語を実行すると、p述語
の呼び出し時の実行トレースを図6のように画面に表示
した後、コマンド入力待ちとなる。
【0020】ここで、中断点まで停止しないコマンドを
選択すると、a述語を呼び出す。a述語には中断点が設
定されていないので、中断することなく実行を進め、a
述語が成功しb述語の1番目の節を呼び出す。このと
き、b述語の1番目の節の節構造体320のフラグ部3
22は0値なので、停止せずに実行を進め本体部323
のfail述語(必ず失敗する組み込み述語)を呼び出
す。fail述語には中断点が設定されていないので、
中断することなく実行を進めると失敗するが、続いてb
述語の2番目の節が呼び出される。このとき、b述語の
2番目の節の節構造体330のフラグ部332には、中
断点を示す値が設定されているため、b述語の2番目の
節の呼び出し時点で停止し、その実行トレースを表示し
コマンド入力待ちとなる(図7)。トレース表示の左端
の「*」は中断点で停止したことを示す。
【0021】目標としていた中断点でプログラムの実行
が停止したので、デバッガの機能を利用して、必要なデ
バッグ情報を収集する。更に、次の中断点までプログラ
ムの実行を進める場合には、上述の場合と同様に、中断
点まで停止しないコマンドを選択実行すればよい。
【0022】このように、節単位に中断点が設定できる
ため、デバッグ対象を絞り込むことができ、より迅速に
細かなデバッグ作業を行うことが可能になる。
【0023】
【発明の効果】以上説明したように、本発明のデバッグ
方式によれば、中断点の節への設定が可能となるので、
デバッグ作業に要する時間が短縮されると共に、述語よ
り小さな単位である節ごとに、より詳細なデバッグ作業
を容易に行うことができる効果がある。
【図面の簡単な説明】
【図1】本発明の一実施例における中断点設定処理を示
すフローチャートである。
【図2】デバッグ対象となるプログラムの例を示す説明
図である。
【図3】本実施例における述語テーブル及び節構造体の
説明図である。
【図4】本実施例におけるソースプログラム表示述語名
入力画面の説明図である。
【図5】本実施例におけるソースプログラム表示の節中
断点設定画面の説明図である。
【図6】本実施例における開始時の実行トレース表示画
面の説明図である。
【図7】本実施例における中断時の実行トレース表示画
面の説明図である。
【図8】論理型言語処理系の実行制御情報を表すモデル
図である。
【図9】従来方式における中断時の実行トレース表示画
面の説明図である。
【図10】従来方式による中断後の節呼び出しまでの実
行トレース表示の説明図である。
【符号の説明】
310 述語テーブル 311,321,331 ポインタ部 312,322,332 フラグ部 320,330 節構造体 323,333 本体格納部

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 論理型言語処理系のプログラムデバッグ
    のためにプログラムに中断点を設定するデバッグ方式に
    おいて、読み込んだソースプログラムを節の情報を格納
    した節構造体を有する述語テーブル形式で述語ごとに記
    憶するプログラム記憶手段と、節単位の中断点の設定要
    求に対し前記述語テーブルを参照して述語の節構成をソ
    ースプログラム形式で表示し、表示されたソースプログ
    ラムから選択された節に対応する前記節構造体に中断点
    を示すフラグを設定するプログラム中断点設定手段と、
    プログラムの実行時に前記節構造体を参照して前記フラ
    グを検出すると実行を中断して実行トレースを表示する
    実行トレース表示手段とを備えたことを特徴とするデバ
    ッグ方式。
JP4145168A 1992-06-05 1992-06-05 デバッグ方式 Pending JPH05342052A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4145168A JPH05342052A (ja) 1992-06-05 1992-06-05 デバッグ方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4145168A JPH05342052A (ja) 1992-06-05 1992-06-05 デバッグ方式

Publications (1)

Publication Number Publication Date
JPH05342052A true JPH05342052A (ja) 1993-12-24

Family

ID=15379008

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4145168A Pending JPH05342052A (ja) 1992-06-05 1992-06-05 デバッグ方式

Country Status (1)

Country Link
JP (1) JPH05342052A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6681343B1 (en) 1999-08-24 2004-01-20 Nec Electronics Corporation Debugging device and method as well as storage medium

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62233852A (ja) * 1986-04-03 1987-10-14 Agency Of Ind Science & Technol 論理型プログラムトレ−ス方式
JPH02224142A (ja) * 1989-02-27 1990-09-06 Nec Corp Prologソースレベル・デバッグシステム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62233852A (ja) * 1986-04-03 1987-10-14 Agency Of Ind Science & Technol 論理型プログラムトレ−ス方式
JPH02224142A (ja) * 1989-02-27 1990-09-06 Nec Corp Prologソースレベル・デバッグシステム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6681343B1 (en) 1999-08-24 2004-01-20 Nec Electronics Corporation Debugging device and method as well as storage medium

Similar Documents

Publication Publication Date Title
EP0785510B1 (en) Program debugging system for debugging a program having a graphical user interface
JPH02272645A (ja) プログラム・デバツグ支援方法
JPH05342052A (ja) デバッグ方式
JPS62113244A (ja) プログラムテスト装置
JPH0554277A (ja) プラント監視装置
JPH0934698A (ja) ソフトウェア生成方法及び開発支援方法
JPH02275539A (ja) デバッグ処理方式
JP2004192139A (ja) デバッグ装置、デバッグ方法および記録媒体
JPS61213936A (ja) 高級言語プログラムのステツプ実行方式
JPH07200350A (ja) ソフトウェアデバッガ
JPS61180344A (ja) 高級言語のステツプ実行システム
JP2977951B2 (ja) 演算装置
JPS63223931A (ja) 論理図実行ル−ト出力処理方式
JPH0262639A (ja) 言語デバッガの中断方式
JP2002149652A (ja) データベース検索処理方法及びその実施装置並びにその処理プログラムを記録した記録媒体
JP2001067245A (ja) シミュレーション方法及びシミュレーション装置
JPH01316842A (ja) バッチプログラム・デバッグツール
JPS6172339A (ja) プログラム実行表示制御方式
JPH04236635A (ja) 識別名検索処理方式
JPH06231001A (ja) シンボル名入力装置
JPH0766343B2 (ja) プログラムテスト装置
JPS63228341A (ja) プログラム構文チエツク方式
JPH06290077A (ja) プログラム実行中断点設定方法
JPH0193812A (ja) ヘルプ画面表示方式
JPH06161516A (ja) シーケンスプログラムのチェック方法

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 19980120