Delphi跟踪工具

时间:2009-12-28 14:32:57

标签: delphi debugging

我想知道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;'

该工具应该要求的唯一信息是函数名称。

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

5 个答案:

答案 0 :(得分:2)

SmartInspectCodeSite

您可以read this question查看有关这些内容和其他内容的更多信息。

答案 1 :(得分:2)

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

你可以download it from SourceForge here

alt text

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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

根据探查器的不同,您将了解aInput通过示例中if-then-else的每个部分的百分比以及遍历每个部分所需的时间。许多分析器都有日志记录,例如smartInspect。但我还没有尝试过。

答案 4 :(得分:0)

也许你可以通过“Delphi代码覆盖”来实现(部分)? (跟踪执行哪些行,哪些不执行) http://code.google.com/p/delphi-code-coverage/