2011-01-25 41 views
14

在Linux中,我一直在使用valgrind來檢查應用程序中是否存在內存泄漏。 Windows中的等效物是什麼?這可以通過Visual Studio 2010完成嗎?使用Visual Studio查找C++應用程序中的內存泄漏

+0

可能有[是否有良好的Valgrind替代品Windows?](http://stackoverflow.com/questions/413477/is-a-good-valgrind-windows代替) – Patrick 2011-01-25 11:16:32

回答

20

Visual Studio可幫助您查找內存泄漏。這link應該是有幫助的。

+1

+1,但值得注意的是,這些東西只能在調試版本中使用。 – sharptooth 2011-01-25 06:39:31

+1

並且您必須更改源代碼,並且要求您更改源代碼...因此,如果您使用任何第三方庫(您不能更改源代碼),例如你不會找到由於沒有調用`ThirdPartyLibFree(p3rdpartyhandle)`而導致的內存泄漏。 – smerlin 2011-01-25 09:54:31

+0

另外,當內存泄漏時(例如指針被刪除或覆蓋),CRT庫不會告訴您。 – Sascha 2015-01-20 10:53:32

1

您可以使用DevPartner工具在Visual Studio中使用Visual Studio查找內存泄漏。

2

C++ Memory Validator在使用Visual Studio,Delphi和其他編譯器構建的本機Windows程序中查找內存並處理泄漏。速度快,可以處理大量工作(某些用戶可以在一次運行中追蹤數十億次分配和釋放)。

披露:我是C++ Memory Validator的設計者。我們構建它是因爲其他工具無法處理我們使用SolidWorks時的工作負荷& D有限公司