Debugging VLD不检测内存泄漏,而CRT调试显示内存泄漏

Debugging VLD不检测内存泄漏,而CRT调试显示内存泄漏,debugging,crt,Debugging,Crt,我的是一个遗留代码,在某个地方引入了长时间的内存泄漏。 我正在使用 \u crtsetdbg标志(\u CRTDBG\u ALLOC\u MEM\u DF\u CRTDBG\u LEAK\u CHECK\u DF) 隐式调用\u CrtDumpMemoryLeaks()终止/从代码中的任何位置退出时。我知道,如果我们调用\u CrtDumpMemoryLeaks()

我的是一个遗留代码,在某个地方引入了长时间的内存泄漏。 我正在使用

\u crtsetdbg标志(\u CRTDBG\u ALLOC\u MEM\u DF\u CRTDBG\u LEAK\u CHECK\u DF)

隐式调用
\u CrtDumpMemoryLeaks()终止/从代码中的任何位置退出时。我知道,如果我们调用
\u CrtDumpMemoryLeaks()\u CrtDumpMemoryLeaks()
的原因

获取内存泄漏,由于我在整个代码中使用“new”,因此不会出现确切的行号和文件名(尽管声明了#define#CRTDBG_MAP_ALLOC)。我有3个选项:

1. Use VLD: but it does not report any leaks.
2. Override new operator so that CRT works. But get error that new is redefined. actually since it is a huge code base, some other place has overriden it conflicts are arising
3. Use number in curly braces and use _crtbreakalloc , but that number is not stable across runs. thus cannot use this strategy as well.
请帮助我解决这个问题。有没有更好的mem泄漏检测工具?我在Linux上也使用了Valgrind。它也不会报告任何mem泄漏。只有CRT调试报告