2011-03-18 39 views
0

我看到this頁面,發現我們可以使用dbx檢查程序的內存泄漏。 我從來沒有實際做過,但它似乎是一個很好的檢查內存泄漏的費用。使用dbx調試檢查內存泄漏與rtcaudit.so

我曾經在HPUX和IBM AIX UNIX OS上工作,那裏沒有GUI並且一直用於在命令行上工作。 庫rtcaudit.so(用於運行時檢查)由Sun提供。 這是否意味着此庫僅在sun solaris上可用?

你可能會告訴我爲什麼我不能自己嘗試自己。但是這裏的問題是我目前沒有在unix上工作,但是在windows上。我只是想知道我們是否可以在HPUX或IBM AIX中使用相同的東西。

沒有任何人知道這件事嗎?請分享的情況下它,你知道它

回答

3
  • rtcaudit.soOracle Solaris Studio部分(前身爲太陽錄音室)。儘管它的名字也可以在Linux x86上運行。所以,如果你有一個Linux的盒子,有時候你可能想在那裏嘗試一下。 (在這種情況下,您可能首先嚐試使用Valgrind,請參閱Scotts答案。)

  • 對於HP,有Wildebeest Debugger (WDB)(修改的gdb)。 WDB有自己的擴展來查找內存泄漏。雖然這些與Sun dbx不同,但您仍可能想嘗試一下。

  • 如果您使用Visual Studio,它確實提供了一些支持來查找內存泄漏。請參閱MSDN上的Memory Leak Detection and Isolation

  • 有一些免費的庫來捕捉這種類型的錯誤。對於Windows,例如有:DUMAElectric FenceVisual Leak Detector。 (不能張貼鏈接,因爲我沒有足夠的聲望值。)

PS:如果我遇到這樣的問題,我嘗試的第一件事是Valgrind的(見斯科特回答)。它不需要任何交互,只是吐出大量有用的信息。雖然它不是一個完整的調試器,但它多次提供足夠的提示來修復錯誤。強烈推薦!雖然不在Windows上運行。

你可能想看看這question,這question和這question這裏在stackoverflow.com。

3

一個開源替代品是Valgrind。這不僅可以檢測內存泄漏,還可以檢測其他類型的內存錯誤以及其他一些我從未使用過的內容。它目前只能在Linux,MacOS,FreeBSD和NetBSD上運行,但如果你的程序不依賴平臺,那麼你可以在一個平臺上開發和調試,然後在目標平臺上運行它。