2011-12-12 64 views
8

我正在使用Qt Creator開發C++應用程序,並試圖追蹤一些內存泄漏。使用Qt Creator中的'Analyze Memory'工具

我遵循these instructions *,並在我的Ubuntu機器上安裝了Valgrind。

我從Analyze Memory部分開始我的應用程序,點擊停止按鈕後,我被告知Tool Analyze Memory finished, 928 issues found。但是,分析部分中沒有顯示結果,該部分保持空白。

我做錯了什麼?我在哪裏可以找到內存分析的結果?


*令人困惑的是,該指令要求,「釋放」構建配置,但選擇這導致在Qt中說,內存分析工具需要一個調試配置的警告。我已經嘗試了兩種方法。

回答

11

我已經在我的Qt Creator中檢查過它,它工作。我在Qt 4.7.4和Valgrind 3.7.0中使用了2.3.1版本。我使用Debug build配置在dropsite example上進行了測試。我也用我的基於CMake的項目(帶有-g和-O0標誌的compiled)對它進行了測試,它也起作用。確保選擇了開始按鈕Valgrind Memory Analyzer旁邊。在同一個欄上你會找到箭頭圖標。旁邊是漏斗圖標(我認爲)。點擊它並確保檢查您感興趣的錯誤類型。

如果它不起作用,並且您不想使用控制檯中的Valgrind工具,還有其他Valgrind GUIs類似Valkyrie。

編輯:我已經更新Qt Creator到2.4.0rc1版本,並用我的CMake項目進行了檢查。它也沒有顯示結果,而報告數百個問題。點擊漏斗圖標後,解決方案是檢查External errors

編輯2:在最終的2.4.0問題是固定的。

+2

最新的Qt Creator 3.2.1出現問題。 +1「外部錯誤」。它爲我工作!謝謝! – mchiasson

+0

並且仍然存在於3.6.0中。修正了外部錯誤。謝謝! – marmistrz

1

你沒有做錯任何事。在Valgrind菜單中,按過濾器圖標並選擇External Errors。你會看到所有問題出現。這些很可能不是來自你的應用程序,而是Qt-或其他相關的,所以你可以經常忽略它們。

X issues found是指問題總數;當External Errors未被選中時,只會顯示與您的應用相關的內容。如果沒有出現,Valgrind在您的應用程序中未檢測到任何內存泄漏。

+0

這是否意味着每次外部發生內存泄漏? – CaptainDaVinci