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

    技术2026-06-16  2

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

    1、准备工作
    1.1、编写目标代码

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

    1.2、设置编译选项

    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”按钮。

    3、关闭GUI程序。

    2.2、测试结果

    1、查看错误日志

    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行。

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

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

    最新回复(0)