【问题标题】:Delphi trace toolDelphi 跟踪工具
【发布时间】:2009-12-28 14:32:57
【问题描述】:

我想知道是否有用于Delphi 的工具或组件可以逐行跟踪方法执行并创建日志文件。使用这种工具,很容易通过比较两个日志文件来比较方法对两组输入数据的执行情况。

编辑:

假设有一个函数


10: function MyFunction(aInput: Integer): Integer;
11: begin
12:   if aInput > 10 then
13:     Result := 10
14:   else
15:     Result := 0;
16: end;

我正在寻找一种工具,它可以提供类似于以下内容的日志:

当aInput参数为1时:


Line 10: 'function MyFunction(aInput: Integer): Integer;'
Line 11: 'begin'
Line 12: 'if aInput > 10 then'
Line 15: 'Result := 0;'
Line 16: 'end;'

当aInput参数为11时:


Line 10: 'function MyFunction(aInput: Integer): Integer;'
Line 11: 'begin'
Line 12: 'if aInput > 10 then'
Line 13: 'Result := 10;'
Line 16: 'end;'

该工具需要的唯一信息是函数名。

这就像在调试器下单步执行该方法,但是以自动方式记录每一行代码。

【问题讨论】:

    标签: delphi debugging


    【解决方案1】:

    SmartInspectCodeSite

    您可以read this question 了解更多关于这些和其他的评论。

    【讨论】:

    • 我对这些工具很熟悉,但它们只允许手动放置跟踪语句。我需要一个工具,它可以自动生成跟踪日志,而无需手动添加任何语句。
    【解决方案2】:

    如果您正在寻找免费的解决方案,我之前使用过TraceTool。查看器是用 Delphi 编写的,您还可以将 TraceTool 与 C#、C++、ActiveX 和 Java 一起使用。使用 Delphi,您只需包含几个辅助单元并随时添加适当的日志记录。它支持记录文本以及对象及其数据。

    你可以download it from SourceForge here

    或者,如果您想要更简单、更轻量级的主要字符串输出,您始终可以使用 OutputDebugString 并使用 TraceTool 的查看器或 SysInternals 的 DbgView 查看输出。

    【讨论】:

    • 非常好的工具...感谢您告诉我们!我希望它在几年前就存在了!
    • 谢谢。它似乎是一个不错的工具,但它类似于 SmartInspect 和 CodeSite。我已经发布了一些关于我正在寻找的内容的说明
    【解决方案3】:

    经过一段时间的搜索,我可以得出结论,Delphi 没有这样的工具。

    【讨论】:

      【解决方案4】:

      也许“delphi profiler”会很有用。 stackoverflow上有很多建议。

      根据分析器,您将知道在您的示例中通过 if-then-else 的每个部分的 aInput 百分比以及通过每个部分需要多长时间。许多分析器都有日志记录。例如 smartInspect。但我没有尝试过。

      【讨论】:

        【解决方案5】:

        也许您可以(部分)使用“Delphi 代码覆盖率”来做到这一点? (跟踪哪些行被执行,哪些不被执行) http://code.google.com/p/delphi-code-coverage/

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-09-13
          • 1970-01-01
          • 2011-08-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-11-19
          相关资源
          最近更新 更多