win32とCRTで簡単なメモリリーク診断とリーク位置の発見

投稿者: | 2015/10/31 土曜日

VC6の素のwin32プロジェクトが前提。

プログラムの最初のほうで以下を書く

ここではStdAfx.cppに書いた。_CrtSetDbgFlagを呼ぶことでプログラム終了時にリークがあると以下のように出力される。

ここにファイル名を表示させたりもできるが今回はスルー。上記の{47}に注目してコードの先頭で以下のように書く。

こうするとリークするアロックのときブレークするのでコールスタックからリーク位置が分かる。

これで判明するのはmalloc, calloc, realloc, newなどのCRT関連で、HeapAllocやSysAllocStringなどは対象外。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です