OpenBoot 3.x コマンド・リファレンスマニュアル

Forth ソースレベルデバッガ

ソースレベルデバッガでは、Forth プログラムのシングルステップ実行およびトレースが可能です。各実行ステップが 1 つの Forth ワードに対応します。

表 6-5にこのデバッガのコマンドを示します。

表 6-5 Forth ソースレベルデバッガコマンド

コマンド 

説明 

c

"Continue (継続)"。シングルステップ実行からトレースに切り替え、デバッグ中のワードの実行の残り部分をトレースします。 

d

"Down a level ( 1 レベルダウン)"。今表示された名前のワードをデバッグ対象としてマークし、次にそのワードを実行します。 

u

"Up a level ( 1 レベルアップ)"。デバッグ中のワードからデバッグ対象のマークを取り消します。その呼び出し元をデバッグ対象としてマークし、それまでデバッグされていたワードの実行を終了します。 

f

下位の Forth インタプリタを起動します。通常はこのインタプリタで Forth コマンドを実行できます。このインタプリタが ( resume ) で終了されると、制御がデバッガの f コマンドが実行された位置に戻ります。

g

"Go"。デバッガをオフに設定し、プログラムの実行を継続します。 

q

"Quit (終了)"。デバッグ中のワードとそのすべての呼び出し元の実行を強制終了させ、制御をコマンドインタプリタに戻します。 

s

"see"。デバッグ中のワードを逆アセンブルします。 

$

スタックの一番上の address,len をテキスト文字列として表示します。 

h

"Help"。シンボリックデバッガのマニュアルを表示します。 

?

"Short Help"。簡略なシンボリックデバッガのマニュアルを表示します。 

debug name

指定された Forth ワードをデバッグ対象としてマークします。以降は、name を実行しようとするたびに、必ず Forth ソースレベルデバッガを起動します。 debug の実行後は、 debug-off でデバッグがオフされるまではシステムの実行速度が落ちることがあります。 ( . などの基本 Forth ワードはデバッグしないでください。)

(debug

(debug は、入力ストリームから名前を取り出すのでなく、スタックから実行トークンを取り出す点を除いて debug と同じです。

debug-off

Forth ソースレベルデバッガをオフにします。以降、ワードのデバッグは行われません。 

resume

下位インタプリタを終了し、制御をデバッガのステップ実行に戻します (この表の f コマンドを参照)。

stepping

Forth ソースレベルデバッガを "シングルステップ (実行) モード" に設定し、デバッグ中のワードを 1 ステップずつ対話的に実行できるようにします。シングルステップモードはデフォルトです。 

tracing

Forth ソースレベルデバッガを "トレースモード" に設定します。このモードは、デバッグ中のワードの実行をトレースし、その間そのワードが呼び出す各ワードの名前とスタックの内容を表示します。 

<space-bar>

今表示されたワードを実行し、次のワードのデバッグに移ります。 

すべての Forth ワードはそれぞれに、「コンポーネント」ワードと呼べる 1 つまたは複数の一連のワードとして定義されています。指定されたワードをデバッグしている間に、デバッガは、そのワードの各「コンポーネント」ワードを実行中にスタックの内容に関する情報を表示します。各コンポーネントワードを実行する直前に、デバッガはスタックの内容と、実行されようとしているコンポーネントワードの名前を表示します。

トレースモードでは、そのコンポーネントワードがそこで実行され、プロセスは次のコンポーネントワードに引き継がれます。

ステップモード (デフォルト) では、ユーザーがデバッガの実行動作を制御します。各コンポーネントワードの実行前に、ユーザーはプロンプトで表 6-5にあるキー操作のどれかを求められます。