示例:日志调试工具EurekaLog(检查内存泄漏)

示例:日志调试工具EurekaLog(检查内存泄漏)
1、准备工作
1.1、编写目标代码

参考:EurekaLog自带的演示Demo“/Program Files/EurekaLog 6/Delphi7/Demos/GUI/ GUI.dpr”。

1.2、设置编译选项

clip_image002

Catch Memory Leaks:捕捉内存泄露。

Group son Leaks with its father:合并统计子类的内存泄露到它的父类。

Hide Borland leaks:隐藏Borland工具中VCL单元中的内存泄露

Free all memory:释放所有内存。

Catch leaks exceptions:捕捉内存泄露异常。

2、开始测试
2.1、执行测试

1、运行GUI程序。

2、选择“GetMem Leak”,单击“Execute selected action”按钮。

clip_image004

3、关闭GUI程序。

2.2、测试结果

1、查看错误日志

clip_image006

2、单击“click here”查看明细

说明:顺序从下往上看,第一行为产生BUG的代码的位置。

(1)、“Call Stack”视图

日志提示发生错误的内存地址、单元、方法、行数。依次为:

Address:内存地址。

Module:程序名称。

Unit:产生BUG的单元。

Class:产生BUG的类。

Procedure/Method:产生BUG的过程或方法。

Line:产生BUG的代码在单元的第几行,在过程或方法的第几行。

(2)、示例

本次Bug发生在“MainForm.pas”单元的普通方法“GetMemLeak”中(因为Class为空,所以肯定是普通方法),代码位置在“MainForm.pas”单元的第232行,在方法“GetMemLeak”的第1行。

clip_image008

3、双击“Call Stack”视图列表第一行,查看具体代码。

结论:Bug发生在GetMemLeak方法的第1行。

clip_image010

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值