是否可以自动插入断点?例如,我需要在特定单元内的每个过程的开始和退出处插入一个特定的(相同的)条件断点。手动执行此操作将非常繁琐且耗时,因此我正在寻找一种自动执行此操作的方法。
答案 0 :(得分:11)
没有。 IDE中没有这样做的功能。
根据您对原始问题的评论,您实际要做的是检测全局(“公共”)变量的更改位置。这样做的方法是设置一个Data Breakpoint,它在变量被更改时被触发,然后查看callstack以查看最后执行的代码。 (您可以在帮助文件中通过搜索Delphi 2007帮助索引中的“断点,设置数据断点”或XE4帮助中的“断点属性,数据断点”(上面链接)找到它。
请注意,两者都要求查看地址,但也要使用@VariableName
。 (使用堆栈(本地)变量会触发一个对话框,告诉您这样做会使您的应用程序不稳定,并要求您确认是否要执行此操作。)
正如@DavidHeffernan在评论中指出的,更好的解决方案是使公共字段成为具有setter的属性,然后在该setter中设置正常断点。
答案 1 :(得分:2)
断点存储在项目DSK文件的类似命名部分中。在IDE中手动设置一个断点以找出正确的设置。然后根据需要在DSK文件中复制并调整此断点。
虽然找不到正确的行号,但这并不能解决问题。
答案 2 :(得分:0)
是*)
可以使用汇编程序代码插入断点(请参阅How to simulate a Delphi breakpoint in code?):
asm int 3 end;
在您需要断点的地方自动插入(和删除)此代码是一项微不足道的任务,因为执行源代码检测的工具(例如Delphi和其他语言的分析器)显示。
我不是说这很容易,但可能。
*)如果您是程序员; - )