2012-01-12 88 views
-3

可能重複:
How to Test for Memory Leaks?
how to find memory leak in c++ code/project
How to find a memory leak in C++
Is there a good Valgrind substitute for Windows?查找內存的最佳解決方案泄漏

我有我的C++程序有很多內存泄漏。什麼是解決方案(程序)來找到它們?

+2

請勿使用C++。對不起,無法抗拒:-D – 2012-01-12 11:01:47

+5

@Thorsten:不,真正的snarky評論是「不要使用'new'」。 – 2012-01-12 11:02:54

+0

[如何測試內存泄漏?](http://stackoverflow.com/questions/420599/how-to-test-for-memory-leaks),[是否有良好的Valgrind替代Windows?] (http://stackoverflow.com/questions/413477/is-there-a-good-valgrind-substitute-for-windows) – 2012-01-12 11:04:12

回答

1

對於哪個操作系統?

在基於Linux的系統上,Valgrind。自由。

在基於Windows的系統上,Insure ++,Purify ....很多。

4

我喜歡用valgrind。假設g++clang++,與-g編譯程序,並嘗試:

valgrind --leak-check=full ./your_executable 
2

最好的解決方案是實現現代化的計劃。

  1. 在您的程序中搜索newdelete
  2. 更新您的程序以使用智能指針。到處。
  3. 完成後引入泄漏將是「非常困難」,如果你做得對。

如果你在OS X man leaks,泄漏Instrument或valgrind。隨着程序的現代化,您可以使用這些來觀察泄漏計數下降;)