-g オプションでコンパイルとリンクをします。
この処理は、まとめて 1 回または 2 回に分けて実行することができます。
-g フラグ付きコンパイルとリンクを 1 度にまとめて行います。
demo% f95 -o my_program -g a1.f a2.f a3.f |
コンパイルとリンクを分けて行います。
demo% f95 -c -g a1.f a2.f a3.f demo% f95 -o my_program a1.o a2.o a3.o |
実行可能ファイル my_program について dbx を起動します。
demo% dbx my_program Reading symbolic information… |
stop in subnam と入力して、簡単なブレークポイントを設定します。subnam は、サブルーチン、関数、ブロックデータサブプログラムを示します。
main プログラム中の最初の実行可能文で停止します。
(dbx) stop in MAIN (2) stop in MAIN |
通常 MAIN は大文字ですが、subnam は大文字でも小文字でもかまいません。
run コマンドを入力して、dbx からプログラムを実行します。dbx の起動時に指定された実行可能ファイルの中で、プログラムが実行されます。
(dbx) run Running: my_program stopped in MAIN at line 3 in file "a1.f" 3 call mkidentity( twobytwo, n ) |
ブレークポイントに到達すると、dbx はどこで停止したかを示すメッセージを表示します。前述の例では、a1.f ファイルの行番号 3 で停止しています。
print コマンドを使用して、値を出力します。
n の値を出力します。
(dbx) print n n = 2 |
マトリックス twobytwo を出力します。
(dbx) print twobytwo twobytwo = (1,1) -1.0 (2,1) -1.0 (1,2) -1.0 (2,2) -1.0 |
マトリックス array を出力します。
(dbx) print array dbx: "array" is not defined in the current scope (dbx) |
ここで array は定義されていないため、出力は失敗します (mkidentity 内でのみ有効)。
next コマンドを使用して、次の行に実行を進めます。
次の行に実行を進めます。
(dbx) next stopped in MAIN at line 4 in file "a1.f" 4 print *, determinant( twobytwo ) (dbx) print twobytwo twobytwo = (1,1) 1.0 (2,1) 0.0 (1,2) 0.0 (2,2) 1.0 (dbx) quit demo% |
next コマンドは現在のソース行を実行し、次のソース行で停止します。これは副プログラムの呼び出しを 1 つの文として数えます。
next コマンドと step コマンドを比較します。step コマンドは、ソースの次の行または副プログラムの次のステップを実行します。通常、次の実行可能ソース文がサブルーチンまたは関数呼び出しの場合、各コマンドは次の処理を行います。
step コマンドは、副プログラムのソースの最初の文にブレークポイントを設定します。
next コマンドは、呼び出し元のプログラム中で、呼び出しのあとの最初の文にブレークポイントを設定します。
quit コマンドを入力して、dbx を終了します。
(dbx)quit demo% |