我正在用C ++编写Vulkan API演示,让我的程序输出任何内存泄漏到输出窗口会很有用。但_CrtDumpMemoryLeaks()
不会输出任何内容。
项目以调试模式构建。这是我的代码的一部分:
#define _CRTDBG_MAP_ALLOC
#include <stdlib.h>
#include <crtdbg.h>
在int main()
:
_CrtSetReportMode(_CRT_WARN, _CRTDBG_MODE_FILE);
_CrtSetReportFile(_CRT_WARN, _CRTDBG_FILE_STDOUT);
_CrtSetReportMode(_CRT_ERROR, _CRTDBG_MODE_FILE);
_CrtSetReportFile(_CRT_ERROR, _CRTDBG_FILE_STDOUT);
_CrtSetReportMode(_CRT_ASSERT, _CRTDBG_MODE_FILE);
_CrtSetReportFile(_CRT_ASSERT, _CRTDBG_FILE_STDOUT);
最后:
_CrtDumpMemoryLeaks();
return 0;
我在中间创建一些对象而不删除它们所以我知道有内存泄漏。
_CrtDumpMemoryLeaks()
确实返回1,但不输出任何内容。
_CrtSetDbgFlag ( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF );
也不起作用。