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

印刷ビューの終了

更新: 2014 年 10 月
 
 

ステップ 8: 原因の範囲を限定する

バルーン評価を使用して、ふたたび err_silent を検査します。現在は -1 です。もっとも可能性の高い原因は、printField() に到達する前に、ある err_silent-- の実行回数が多すぎたか、ある err_silent++ の実行回数が少なすぎたことです。

このような小さいプログラムでは、コードを入念に検査することで、この err_silent のミスマッチのペアを特定できます。ただし大規模なプログラムには、膨大な数の次のペアが含まれている可能性があります。

err_silent++;
err_silent--;

ミスマッチのペアをより速く検索する方法として、ウォッチポイントの利用があります。

エラーの原因が、err_silent++;err_silent--; のセットのミスマッチではなく、err_silent の内容を上書きする不正なポインタである可能性もあります。ウォッチポイントはそのような問題をとらえるのにより効果的でしょう。