2011-08-18 63 views
0

我相信我在OpenBSD的複雜C++應用程序中發生了雙重刪除和一些內存損壞。我想追蹤我的對象被刪除的第一個位置,以及任何取消分配內存的位置。在OpenBSD中有哪些可用於C++內存調試的選項?

我通常會查看valgrind,但它只是linux。否則,我會用新的和刪除操作符來跟蹤某些跟蹤代碼,但是我一直髮現很難確定正確的谷歌搜索。

是否有openbsd的任何包會給我關於內存錯誤的信息?有沒有什麼標準的方式來重新定義新的和刪除來檢測溢出,無效訪問,雙重釋放?

回答

1

這有很大幫助:

man malloc 

調試選項可啓用全系統的環境範圍,或特定的程序。

+1

將malloc標誌作爲一個好開始。 –

-1

我不知道你是否願意使用第三方工具,但C++內存驗證器是非常好的。

http://www.softwareverify.com/cpp-memory.php

它隔離內存/句柄泄漏,告訴你多少內存泄漏,並顯示您在代碼中的位置。如果只是它可以爲你修復泄漏:)30天免費試用也可用。

我用它來查找我遺留的C++ MFC應用程序中的泄漏,其中以前的開發人員似乎並不認爲需要永久釋放內存!

+0

此工具僅適用於Windows!謝謝,但我一直在尋找一個可以在OpenBSD中工作的工具或庫,或者有關檢測「新」和「刪除」的最佳實踐的信息。 – fuzzyTew

相關問題