debug, nodebug, debug_goal
MINERVA superseeded IF/Prolog. Please see http://www.ifcomputer.co.jp/MINERVA for details.

We discontinued to sell IF/Prolog Dec 31. 2003. For current customers, we continue to provide professional support for IF/Prolog until Dec 31, 2008.

debug nodebug debug_goal(+ゴール)

debug/0は、デバッガをオンにします。これ以後、情報はすべてデバッグの目的のために記憶され、また実行にはより多くの領域が必要となります。 debug_goal/1は、ゴールの実行を行なうためにデバッガをオンにします。

nodebug/0は、デバッガのインタプリタのプロンプト"debug ?-"で入力され、デバッガをオフに切り換えます。デバッグモ−ドがすでにオフになっている場合には、いかなる影響を与えることもなく成功します。プロンプト"command: "でコマンド"A"(abort)が入力されると、デバッガのインタプリタのプロンプト"debug ?-"に戻ります。debug/0とnodebug/0とは、インタプリタループコマンドとしてのみ使用することができます。

IF/Prologのフルスクリ−ンデバッガは、画面を4つのウィンドウに分けます。カ−ソル"_"は、入力を待っていることを示しています。

(備考) 状態表示行: 全てのデバッガモ−ドの現在の状態の表示 表示領域: 現在のゴ−ルの節を表示し、現在のサブゴ−ルの現在のポ−トを示す コマンド行: ユ−ザのコマンドは、ここに入力 ユ−ザi/o領域: プロンプト'debug ?-'で入力されるゴ−ルの表示:ユ−ザi/oは、ここに表示される

<デバッガ 状態表示行>

状態表示行は画面の先頭の行で、ポ−トの活性/不活性、スパイポイントの有効/無効、入れ子の構造に対するプリントレベル、選択されたデバッガのステップモ−ドを示しています。デフォルト値は、ポ−トはCALL, FAIL, LASTで活性状態、スパイポイントは不活性状態、プリントレベルは5、ステップモ−ドはCREEPINGです。以下の"デバッガ コマンド行"で説明するように、これらの値は変更できます。

<ポ−トの活性>

ポ−ト(call,exit,redo,fail,last)は、活性か不活性です。活性の場合は、大文字で表示されます(例えばCALL)。そうでない場合は、小文字で表示されます(例えばredo)。ポ−トの意味は、Prologの実行の"ボックスモデル"に由来しています。活性化されたポ−トは、デバッグ中に表示されます。不活性の場合は表示されません。

<プリントレベル>

この数値は、印刷する入れ子構造のレベルの数を指定します。例えばデフォルト値の5は、質問"zz([a,b,c,d,e,f])"を"zz([a,b,c,'...'])"と表示します。

<スパイポイント>

スパイポイントの有効/無効は、ポ−トの場合と同様の方法で表示されます。"SPY"は、スパイポイントが有効であることを表し、"spy"は、無効であることを表します(spy/2を参照して下さい)。

<デバッグモ−ド>

デバッガのステップモ−ドは、CREEPING, LEAPING, NOSTOP, SWEEPINGのいずれかです。これらの値は、現レベルにおけるゴ−ルの実行、サブゴ−ルの実行、スパイポイントがオンの場合はスパイポイント・ゴールの実行のいずれかを表しています。

CREEPING サブゴ−ルの実行の表示 LEAPING 現在、画面に表示されているゴ−ルの実行の表示;サブゴ−ルの実行は表示されません NOSTOP スパイポイントが有効な場合に、スパイポイント上の活性化されたポ−トを表示するために実行を停止します

SWEEPING スパイポイントが有効な場合に、スパイポイント上の活性化されたポ−トを表示するために実行を停止し、また節の終りで停止します。

<デバッガ 表示領域>

現在のゴ−ルとそのサブゴ−ルを表示します。サブゴ−ルは、以下のインジケ−タのいずれかと共に表示されます。

execute 引数は、デバッガによって実行される述語です。 # 最終選択点を示します CALL 次に満たされるゴ−ルを示します EXIT ゴ−ルが満たされます LAST 最後の解でゴ−ルが満たされます REDO 他の解を求めるためにゴ−ルが呼び出されます FAIL ゴ−ルを満たすことができません

<デバッガ コマンド行>

以下のコマンドがあります。

<改行> 実行を続けます

L leapingモ−ドに入ります:画面の右上端にLEAPINGと表示されます

C creepingモ−ドに入ります:画面の右上端にCREEPINGと表示されます

S sweepingモ−ドに入ります:画面の右上端にSWEEPINGと表示され、デバッガはユ−ザによってデ−タベ−スに加えられた、スパイポイントと節の最後で止まります

N nostopモ−ドに入ります:画面の右上端にNOSTOPと表示され、デバッガはユ−ザによってデ−タベ−スに加えられた、スパイポイントの所で止まります

h すべての使用可能なコマンドの使い方を表示します:このコマンドからデバッガに戻るには、改行して下さい

f 現サブゴ−ルを失敗させます

c 現サブゴ−ルを呼び出します

e 現サブゴ−ルから脱け出します

r 現サブゴ−ルを再実行します

+/- 長い述語の間で上/下にスクロ−ルします ++/-- 長い述語の先頭/末尾にスクロ−ルします

P 親ゴ−ル、すなわちゴールを呼び出したゴ−ルを見せます サブゴ−ルに戻るには、"sg"と入力して下さい 親ゴ−ルを実行するには、"c"と入力して下さい

sg 親ゴ−ルから現在のゴ−ルに戻ります ("P"の直後のみ)

P_ ポ−トの活性/不活性を設定します _をC,c,E,e,R,r,F,fのいずれかに置き換えます 大文字は、デバッガが求められているポ−トの所で止まり、そのポ−トが表示されることを表します 小文字は、デバッガがそのポ−トの所で停止しないことを表しています

s スパイポイントを有効/無効にします デバッガ状態表示行の小文字の"s"は大文字の"S"に変えられ、その逆も行なわれます

A デバッガモードのプロンプトに戻ります

B 現在の実行を一時止めて、IF/Prologインタプリタル−プの新しいコピ−を開始します(例えばスパイポイントを設定するために) 現在のデ−タベ−スの状態は保持され、end_of_fileと入力することによって新しいインタプリタのコピ−から脱け出すと、デバッガは実行を止めた時点から再び開始されます

0-99 プリントレベルを設定します


Up read on...