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

印刷ビューの終了

更新: 2014 年 10 月
 
 

ステップ 5: 原因の調査

err_silent が 0 より大きくないため、意図しないエラーメッセージが出力されます。バルーン評価を使用して err_silent の値を調べます。

  1. カーソルを 31 行目の err_silent に置いて、表示される値を待機します。

    image:err_silent = 0 のバルーン評価が表示された「エディタ 」ウィンドウ

    スタックを追跡して、err_silent が設定された場所を確認します。

  2. 「呼び出し元を現在に設定」 image:「呼び出し元を現在に設定」ボタン を 2 回クリックすると、evaluateField() に到達し、この関数はすでに evaluateFieldPrepare() を呼び出し、err_silent を操作している可能性がある複雑な関数をシミュレートします。

    image:evaluateField にラベンダーストライプが表示された「エディタ」ウィンドウ
  3. 「呼び出し元を現在に設定」を再度クリックすると、printField() に到達し、err_silent が増分されます。printField() はすでに printFieldPrepare() を呼び出し、err_silent を操作している可能性のある複雑な関数もシミュレートします。

    image:printField にラベンダーストライプが表示された「エディタ 」ウィンドウ

    一部のコードが err_silent++err_silent-- に囲まれていることを注目してください。

    err_silent は、printFieldPrepare() または evaluateFieldPrepare() のいずれかで不正になったか、printField() に制御が到達したときにすでに不正だった可能性があります。