我想知道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;'
该工具应该要求的唯一信息是函数名称。
这就像在调试器下单步调试方法一样,但是以自动方式记录每一行代码。
答案 0 :(得分:2)
您可以read this question查看有关这些内容和其他内容的更多信息。
答案 1 :(得分:2)
如果您正在寻找免费解决方案,我之前使用过TraceTool。查看器是用Delphi编写的,你也可以使用TraceTool和C#,C ++,ActiveX和Java。使用Delphi,您只需包含几个辅助单元,并随时添加适当的日志记录。它支持记录文本,以及对象及其数据。
你可以download it from SourceForge here。
或者,如果您想要主要字符串输出的更简单和更轻的重量,您可以始终使用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/