Oracle® Solaris Studio 12.4: dbxtool チュートリアル

印刷ビューの終了

更新: 2014 年 10 月
 
 

ステップ 11:スタックをポップすることによる診断の確認

関数の else ブロックから実際に進んでいることをダブルチェックする方法の 1 つは、checkThings() にブレークポイントを設定し、プログラムを実行することです。しかし、checkThings() は何度も呼び出される可能性があります。ブレークポイントカウントまたは境界ブレークポイントを使用して checkThings() の正しい呼び出しに到達できますが、最近実行された処理をよりすばやく再現するには、スタックをポップします。

  1. 「デバッグ」->「スタック」->「最上位の呼び出しをポップ」を選択します。

    「最上位の呼び出しをポップ」がすべてを元に戻さないことに注意してください。特に、データデバッグからコントロールフローデバッグに切り替えているため、err_silent の値はすでに間違っています。

    プロセスの状態は、checkThings() の呼び出しを含む行の最初に戻ります。

  2. 「ステップイン」 image:「ステップイン」ボタン をクリックすると、checkThings() が再度呼び出されるたびに監視できます。

    checkThings() をステップスルーするにつれて、プロセスが if ブロックを実行することを確認でき、ここで err_silent は増分されず、-1 に減らされます。

image:checkThings( ) の if セクションで停止したプログラムを表示する「エディタ」ウィンドウ

プログラミングエラーが見つかったようですが、それをトリプルチェックすることをお勧めします。