簡體   English   中英

Fastmm4和泄漏手柄

[英]Fastmm4 and leaking handles

我剛剛使用FastMM4來檢測泄漏。 我沒有意識到我們的應用程序使用的是DLL,該DLL泄漏了事件句柄,因此我修復了FastMM4報告的所有泄漏,但沒有修復由於未報告的句柄。

我的問題是,FastMM4是否會報告泄漏事件句柄? 這會要求我重建包含FastMM4的dll嗎? 我還聽到有人提到ShareMM,我需要添加嗎?

我使用的是Delphi2007,我認為它使用的是borland內存管理器,如果這樣,是否應該用fastMM4替換它? 這樣做的步驟是什么?

抱歉問了這么多問題,經過幾年的.net開發,我正在研究delphi。

JD。

不會。FastMM是內存管理器,它只能報告應用程序通過FastMM分配的內存泄漏。 句柄是對Windows分配的系統對象的不透明引用,因此FastMM無法跟蹤它們,其他任何Delphi內存管理器也不能。

而且,這也不是Delphi與.NET的真正結合,因為.NET的垃圾回收無法比FastMM更好地解決此問題。 句柄是非內存資源,您必須像處理.NET一樣防止它們泄漏:確保分配完所有內容的任何內容都會釋放它。

您知道泄漏的是哪種類型的手柄? 如果它比普遍存在的HWND少見,那將是追蹤問題的一個很好的起點:找到要分配這種類型的句柄的位置。

關於您的其他問題,關於Delphi 2007,它內置了FastMM,而不是舊的BorlandMM。 但這是一個基本版本。 要訪問FullDebugMode功能,您需要從SourceForge下載FastMM,並將其添加到使用列表的頂部,然后使用 FullDebugMode編譯器定義重新構建。

暫無
暫無

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

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