_CRTDBG_MAP_ALLOC を使用してメモリ リーク情報、特にファイルと行番号を取得したいのですが、最後に取得できません。私はこのようなものしか得ません:
{130} 0x00695128 の通常ブロック、16 バイト長。データ: <\ E Pi > 5C A5 45 01 02 00 00 00 01 00 00 00 E8 50 69 00
これはすべてのインクルードの前にある必要があることがわかりました:
#define _CRTDBG_MAP_ALLOC
#include <cstdlib>
#include <crtdbg.h>
そして、すべてのソースファイルのすべてのインクルードの後にこれを追加することを推奨する人もいます:
#ifdef _DEBUG
#define DEBUG_NEW new(_NORMAL_BLOCK, __FILE__, __LINE__)
#define new DEBUG_NEW
#endif
ただし、main.cpp で明示的にメモリ リークを追加すると、出力に行番号が表示されます。だからそれはうまくいきますが、すべてではありません...
Boost ライブラリを使用しているため、メモリ リークはすべてこれらのどこかで発生していると思われます... (shared_ptr ?)。しかし、これらのメモリリークがどこから来たのかを知るにはどうすればよいでしょうか?