cd C:\Delphi git clone https://github.com/shadow-cs/delphi-leakcheck 1.将路径C:\Delphi\delphi-leakcheck\Source添加到 Delphi 库路径(工具/选项/...) 1.在MyProject.dpr文件的开头添加以下代码: 代码:
uses
// LeakCheck, // Does not need do be defined here (LeakCheck.Report will do it) unless you want to reference it from the DPR
LeakCheck.Report, // Me first! - I don't have any dependencies but LeakCheck so I finalize after all other units
LeakCheck.Setup.Trace, // (Optional) Then me - Run setup to configure stack tracing for us
LeakCheck.Report.FileLog, // Then me - I'm the one that pulls some dependencies and have all the functionality
3条答案
按热度按时间k4aesqcs1#
有一些工具可以帮助您查找内存泄漏(AQTime,EurekaLog,...)。
Example. See EurekaLog,下载演示/试用版并进行测试。这个工具可以给予你一些关于泄漏的信息,以及产生泄漏的源代码的详细信息。
“详细信息”(包括应用程序中的调试信息)可以帮助您检测错误行:
xdnvmnnf2#
下面的软件可以帮助查找内存泄漏:
https://github.com/shadow-cs/delphi-leakcheck
下面是要遵循的步骤:
cd C:\Delphi
git clone https://github.com/shadow-cs/delphi-leakcheck
1.将路径
C:\Delphi\delphi-leakcheck\Source
添加到 Delphi 库路径(工具/选项/...)1.在
MyProject.dpr
文件的开头添加以下代码:代码:
1.编译并启动程序
1.定期退出程序
退出可能需要几分钟(请耐心等待...)
1.您将看到一个消息框,告诉您创建了一个文件
C:\Delphi\MyProject\MyProject.log
。此日志文件包含创建变量的函数(及其调用堆栈)的名称。它不是未释放变量的名称,但至少是函数和该函数中的行号。
这个方法在几分钟内解决了我的问题。
额外的好处:这个软件是完全免费的-你不需要为它支付任何费用
ffvjumwh3#
使用 Delphi 的一个内存分析器来获取泄漏的调用堆栈:
在查看调用堆栈之后,您有机会了解哪些对象正在泄漏。