Oracle® Solaris Studio 12.4: dbx コマンドによるデバッグ

印刷ビューの終了

更新: 2015 年 1 月
 
 

プログラムをステップ実行する

ブレークポイントで停止したあと、プログラムの実際の状態を予測される状態と比較しながら、プログラムを 1 ソース行ずつステップ実行することもできます。 それには、step コマンドと next コマンドを使用します。いずれのコマンドもプログラムのソース行を 1 行実行し、その行の実行が終了すると停止します。この 2 つのコマンドは、関数呼び出しが含まれているソース行の取り扱い方が違います。step コマンドは関数にステップインし、next コマンドは関数をステップオーバーします。

step up コマンドは、現在実行している関数が、自身を呼び出した関数に制御を戻すまで実行され続けます。

step to コマンドは、現在のソース行内の指定された関数か、または関数が指定されていない場合は、現在のソース行のアセンブリコードによって特定される最後に呼び出された関数へのステップインを試みます。

一部の関数 (特に、printf などのライブラリ関数) は -g オプションでコンパイルされていない可能性があるため、dbx はこれらの関数にステップインできません。このような場合、stepnext は同様の動作になります。

次の例は、step および next コマンドと、ブレークポイントの設定で設定されたブレークポイントの使用を示しています。

(dbx) stop at 13
(3) stop at "t.c":13
(dbx) run
Running: a.out
stopped in main at line 13 in file "t.c"
   13           printit(msg);
(dbx) next
Hello world
stopped in main at line 14 in file "t.c"
   14   }

(dbx) run
Running: a.out
stopped in main at line 13 in file "t.c"
   13           printit(msg);
(dbx) step
stopped in printit at line 6 in file "t.c"
    6           printf("%s\n", msg);
(dbx) step up
Hello world
printit returns
stopped in main at line 13 in file "t.c"
   13           printit(msg);
(dbx)

プログラムのステップ実行の詳細については、プログラムのステップ実行を参照してください。step および next コマンドの詳細については、step コマンドおよび next コマンドを参照してください。