sitelogo
デバッガー

MINERVAのデバッガー minervad は大変簡単なもので、 これを使えばあなたのプログラムを歩いて回り、 それがどのように動くのかがわかります。

また、このデバッガを使用すると、あるbreakpoint まで、プログラムを実行させることができます。

準備

デバッガーを使うか使わないかについては、 コンパイル時に、つまりminervacを呼び出す時に、 "-debug"のオプションをつけるかつけないによります。

	minervac -debug	myNewProg

すでに存在するプログラムコンポーネントと共に、-debugオプションをつけて コンパイルしたオブジェクトを組み合わせることもできます。

呼びだし

あるプログラムをデバッガーで呼び出したい場合には、minervadを使用します。

	minervad myNewProg

あるゴールをデバッガーで呼び出したい場合には、debug/1の述語を使用します。

	someGoal(Args,..) :-
		subGoal1(A),
		subGoal2(B),
		   :
		debug(subGoal(K)),	% debugger will show this
		   :
		subGoalN(Z).

ブレークポイント

ある所定の条件で実行を停止するには、ブレークポイントを使います。 ブレークポイントは、プログラムの状態およびデータの条件を表現します。

	start :-
        	breakpoint(app/3),
        	breakif((app(A,B,C) :- C = [c])),
        	debug(app([1,2], [ b,c], L)).

app([],L,L). app([E|L1],L2,[E|L3]) :- app(L1,L2,L3).

対話的制御

対話的にデバッガーを制御する場合には以下を使って下さい。

	s)tep        single pass (単独パス)
	n)ext        pass over (パス)
	f)ail        force 'fail' ('fail'を強制)
	c)ont        continue till next breakpoint 
                     (次のブレークポイントまで継続)
	b)acktrace   show stack backtrace (activation stack)
               	     (スタックバックトレースを示す) 
	a)bort       abort (アボート)
	e)scape      call 'break/0' ('break/0'を呼ぶ)
	h)elp        show this help message
                     (このヘルプメッセージを示す。)


戻る 続く..
冒頭へ managed with ubiCMS