簡體   English   中英

如何通過Valgrind或其他工具檢測我的Qt軟件中的內存泄漏?

[英]How to detect memory leak in my Qt software by Valgrind or other tools?

我已經使用Qt / C ++開發了一個庫,現在我想確定一下內存泄漏測試,

我找到了Valgrind,它似乎是一個很好的檢測器(我仍然不使用它),但是是否還有另一個工具可以測試內存泄漏?

是的,正如艾爾斯(Als)在評論中指出的那樣,並且根據我的個人經驗,我也建議您使用valgrind。 您可以使用各種選項,例如--leak-check=yes等。 運行valgrind后,它將輸出一些推薦選項,您可以在下一次運行中包括這些選項。

Valgrind正在嘗試的問題(即查找內存泄漏)是一個復雜的問題。 有時valgrind會感到困惑並輸出誤報,即,它表明在沒有內存泄漏的地方出現內存泄漏。 但是,除此之外,valgrind非常用戶友好和有用。

您可以自己進行內存泄漏檢查,而無需付出額外的努力(取決於您的代碼)。 只需提供自己的運營商版本即可new和delete。 使用容器存儲在new中分配的每個內存地址。 如果調用delete,則將其從集合中刪除。 在程序結束時,檢查集合是否為空。

有關詳細信息,請參見Scott Meyers的有效C ++項目50。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM