是否有完整的Delphi调试资源,指导如何使用所有IDE调试工具?曾经有过MarcoCantù的指南,但如果我没有错,它会更新到Delphi 5.
请你重定向到一个完整的资源,至少更新到D2009(如果XE更好).
调试资源PDF没有提到我最喜欢的调试技术:
假设您想要在满足运行时条件的某个复杂且仅可用的情况下中断.
你可以说
if <MyExpressionA> then
asm
int 3; // Enter CPU Debugger
end;
Or you could say
if not <MyExpressionB> then
asm
int 3; // Enter CPU Debugger
end;
Run Code Online (Sandbox Code Playgroud)
其中ExpressionA是你永远不会想到的东西(即,如果它是真的,它表示异常条件),或者其中ExpressionB是你总是期望是真的(即,如果它是假的,它表示异常条件).
请记住,任何一个表达式都可以包含多个函数调用 - 如果需要它们.
您可以将它们放在{$ IFDEF DEBUG}内的块内,如下所示:
procedure MyProcedure;
var X: Integer;
begin
X := GetTheAnswerToLifeTheUniverseAndEverything();
{$IFDEF DEBUG}
if X <> 42 then // Highly contrived example
asm
int 3; // Enter CPU Debugger -- Press F8 when here to step back into source...
end;
{$ENDIF}
// More code here...
end;
Run Code Online (Sandbox Code Playgroud)
你也可以使用
ASSERT(表达,"消息"); ASSERT(不是表达,"消息");
确保代码中的内容按预期运行.
如果在IDE中启用ASSERT并且ASSERT失败 - ASSERT将创建一个异常,该异常将堆栈展开到其类型的最后一个异常处理程序......
使用我的int3方法 - 你可以立即进入CPU调试器 - 如果你点击F8(跳过),你将进入下一行代码 - 你可以检查变量,查看整个调用堆栈,以及甚至继续踩着你的代码......
互联网是你的朋友,这里有两个关于调试的链接
Delphi - 调试技术
[PDF] http://www.scip.be/ScipViewFile.php?Page=ArticlesDelphi11
里面的内容还是很相关的