This question already has answers here:
How to get a stack trace from FastMM

(4个答案)


2年前关闭。





我已启用内存泄漏报告:

ReportMemoryLeaksOnShutdown := True;


当我关闭程序时,我会收到如下的内存泄漏报告:

delphi - 如何找到内存泄漏在哪里?-LMLPHP

但是,如何找到未释放的对象呢?

最佳答案

您可以使用LeakCheck(或FastMM完全调试模式)。 LeakCheck输出分配的堆栈跟踪(如果启用)。它甚至可能输出泄漏的依赖关系图,因此您可以找到根本原因。

检漏方式:


下载LeakCheck(您可以使用Delphinus)
在编译器选项中启用MAP文件生成
LeakCheck, LeakCheck.Setup.Trace添加到DPR uses部分
可选:将LeakCheck.Report.FileLog也添加到uses(在扫描内存时要小心使用)-它会生成.dot文件,您可以通过该文件通过Graphviz生成泄漏图
运行你的应用
分析输出

09-19 04:47