Last Updated 2005/06/06
Programming Tips Visual C++  索 引 
例外処理のデバッグ
2005/06/06

プログラム終了時にアウトプットウィンドウに例外処理が発生と出る場合がある.

オプションの「デバッグ−例外処理」で該当する例外を「常に停止」とすると例外が発生した場所で停止する.
そこからコールスタックなどで追っかけるのがよいでしょう.


デバッグコンパイルだと,new で割り当てたメモリは 0xCD で初期化される.
リリースコンパイルだと,初期化されない.
初期化していないメモリを参照するなどの例外はよく見かけるのでこれを判断材料にしてもよい.

よくあるのが,デバッグでは動いてリリースでは動かないということである.
これは new したメモリの前後にガードブロックが入り,その為安定してしまうということである.
(バグを見つける為のものがかえって安定してバグが見つからないという結末に...)


また,デバッグには _CrtSetBreakAlloc() という API も役に立つであろう.


参照
前後のTips
例外処理のデバッグ

DSS ProgrammingTipsCGI Ver2.01