メモリリーク対応


_CrtSetBreakAllocを用いると、指定したメモリ割り当て位置にブレークポイントを設定できる。
下記のようなログが出た場合、strcore.cpp(156)を呼び出している個所を特定する際に用いる。
ただし、毎回固定位置にメモリ割り当てされる場合にしか使えない。


Detected memory leaks!
Dumping objects ->
{9357} normal block at 0x04693B90, 171 bytes long.
Data: <20101201 224300> 32 30 31 30 31 32 30 31 20 20 32 32 34 33 30 30
・・・・
{1865} normal block at 0x04664618, 171 bytes long.
Data: <20101130 230000> 32 30 31 30 31 31 33 30 20 20 32 33 30 30 30 30
f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\strcore.cpp(156) : {1658}
normal block at 0x0035DB30, 75 bytes long.
Data: < Y: : > B4 A6 B8 59 3A 00 00 00 3A 00 00 00 01 00 00 00
Object dump complete.

上のようなログが出た場合、{}に囲まれた値を指定して、
該当処理を行っているクラスのコンストラクタで_CrtSetBreakAllocを実行する。

_CrtSetBreakAlloc(1865);