原諒我可憐的英語。無法在vs2012中輸出調試信息
我要檢查內存泄漏:
_CrtSetReportMode(_CRT_ASSERT, _CRTDBG_MODE_DEBUG);
_CrtSetReportMode(_CRT_WARN, _CRTDBG_MODE_DEBUG);
_CrtSetReportMode(_CRT_ERROR, _CRTDBG_MODE_DEBUG);
_CrtSetDbgFlag (_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF);
當程序退出,我不能看到vs2012的調試輸出面板任何輸出。
然後我進入_CrtDumpMemoryLeaks(),發現存在內存泄漏,並且檢查結果正確,但無法打印出來。
所以,我想:
OutputDebugStringA("Output string");
VS仍然打印什麼。
我試圖的DebugView,一切運行正常,但它的麻煩。
AllocConsole();
freopen("CONIN$", "r", stdin);
freopen("CONOUT$", "w", stdout);
freopen("CONOUT$", "w", stderr);
這也可以很好地工作。微軟給出的連接
你正在使用哪種編程語言?請提供一個簡單的主函數和您在程序中使用的內存分配以及您設置泄漏檢測的方式。感謝您提供任何幫助。 – Ursegor
@Richard首先,語言是C++,我用_CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF)設置泄漏檢測;' 我甚至嘗試了'int * pData = new int [100];''不能工作。 但是當我調試時,'_CrtDumpMemoryLeaks()'已經真正執行。 – wangxt