我正在Visual Studio中開發一個C程序。有沒有一種方法可以在Visual Studio中檢測我的程序的內存泄漏?或者一般來說任何Windows開發者的內存泄漏檢測庫(類似於valgrind for linux)....請讓我知道。謝謝。在Windows上開發程序中的內存泄漏檢測
2
A
回答
2
你可以#include <crtdbg.h>
在你的程序開始輸入以下代碼:
_CrtSetDbgFlag(_CRTDBG_ALLOC_MEMDF | _CRT_LEAK_CHECK_DF);
或在程序結束時,你返回退出代碼之前:
_CrtDumpMemoryLeaks();
第一種方式更好,因爲它會在程序退出時自動顯示內存泄漏,並且它只是一行代碼。如果您使用_CrtDumpMemoryLeaks()
,則不得不將其放置在程序可能會退出的任何位置。
程序退出時,輸出窗口中將顯示任何內存泄漏。這隻適用於視覺工作室。
我不認爲這會顯示分配發生的地方的文件和行號。在C++中,你可以,如果你重新定義new
關鍵字顯示在分配發生了:
#ifdef _DEBUG
#define new new(_NORMAL_BLOCK, __FILE__, __LINE__)
#endif
0
我不是專家,程序員,但我用英特爾Parallel Studio檢查內存泄漏。它非常不可思議,無縫集成到視覺工作室中,並提供極其簡單的控制來檢測程序中的各種錯誤。幾乎只是安裝並運行它開始發現內存錯誤。
唯一的問題是價格標籤,雖然有30天的試用期。
0
對於在Visual Studio中工作已經開發和可靠的插件。至於我,我喜歡deleaker,它很容易使用。
1
我使用Visual Leak Detector。它是免費且非常有效的,你只需要在你的程序中包含頭文件<vld.h>
。
它給出已分配和未釋放的內存的完整堆棧跟蹤。
相關問題
- 1. 檢測C++ Windows應用程序中的內存泄漏
- 2. 內存泄漏沒有檢測到CRT內存泄漏檢測
- 3. 如何在Windows上檢測QtCreator中的內存泄漏?
- 4. Windows API調用內存泄漏檢測
- 5. 檢測Android內存泄漏
- 6. 內存泄漏檢測器
- 7. VisualVM內存泄漏檢測
- 8. 檢測Ruby內存泄漏
- 9. Tomcat7檢測內存泄漏
- 10. 檢測內存泄漏
- 11. 檢測TWebModule內存泄漏
- 12. 檢測進程運行內存泄漏
- 13. 用於windows上的qt應用程序的內存泄漏檢測工具
- 14. DLL中的內存泄漏檢測
- 15. 檢測Web應用程序中的內存泄漏
- 16. 檢測並移除Linux應用程序中的內存泄漏
- 17. Windows 10上的WPF應用程序中的內存泄漏
- 18. Valgrind在fclose檢測到內存泄漏()
- 19. 檢測Visual C++中的內存泄漏(Windows)
- 20. Windows開發:如何確定我的應用程序是否在泄漏內存?
- 21. 檢測到的內存泄漏
- 22. 檢測不到的內存泄漏
- 23. 在Android上檢測java中的內存泄漏
- 24. Golang程序內存泄漏?
- 25. 內存泄漏Node.js程序
- 26. 創造的Ruby/Rails應用程序或檢測內存泄漏
- 27. 內存泄漏的Windows Phone
- 28. 內存泄漏的Windows
- 29. Windows Phone開發中的內存泄漏問題 - Silver Light Framework
- 30. 在Windows 8.1中的Eclipse內存泄漏
它確實顯示malloc的分配文件和行號(所以在C中)。 – noelicus 2011-11-16 14:12:52