Delphi:IdStack中的memoryleak,但谁使用IdStack?

Veg*_*gar 7 delphi memory-leaks fastmm

FAstMM报告IdStack.pas中TIdCriticalSection的内存泄漏.我知道这是故意泄漏,代码中记录了这一点.

我不明白的是,为什么IdStack被包含在我的项目中.我怎样才能找出哪个单位拉进去?

有没有办法从报告中排除这个漏洞,使用delphi 2007附带的fastmm版本?

更新:有没有办法找到构建中包含的所有pas文件?

jpf*_*ius 8

Delphi FastMM内存管理器提供了一种方法

function RegisterExpectedMemoryLeak(P: Pointer): boolean;
Run Code Online (Sandbox Code Playgroud)

因此,如果您找到了该单元并且事实证明您无法将其删除,则可以使用此方法来抑制内存泄漏警告.


Wou*_*ick 4

所有 Indy 单位都有一个“Id”前缀,因此请检查您的 use 子句中是否有任何这些前缀。

另一种方法可能是在 TIdStack.create() 中放置一个断点。最终,有罪的人将出现在调用堆栈中。