我正在使用Delphi 2010,我想知道是否有一种方法可以跟踪项目中的代码,而无需跟踪调用包含的VCL.
例如 - 您输入一个断点然后使用Shift+ F7来逐行跟踪.现在你在VCL中调用了一些冗长的过程 - 在我的例子中,它通常是一个Measurement Studio或其他组件,用于绘制一堆I/O,OPC或其他位的doodads.无论如何,发生的事情是调试器跳出活动源文件,打开组件源,并逐行跟踪.通常这是我不关心的数百或数千行代码 - 我只想让它执行并返回到MY项目中的下一个源代码行.
显然你可以通过在外部调用的每个实例周围设置断点来实现这一点,但通常有太多不能使其变得切实可行 - 每次我想要逐步执行一段代码时,我会花一小时设置一百个断点.
是否有设置或工具可以做到这一点?允许用户跟踪项目中的代码,同时静默执行项目外部的代码?
调试器在错误的源代码中步入(如同F7),但我想恢复正常工作模式,其中Delphi基本DCU(库)只编译到我的代码中,并且源不用于调试.
例如,在我的程序中出现错误时,调试器正在进入Controls.pas,进入TControl.Click.正常情况(安装后)是Delphi跨越这些方法的.
我应该在没有调试信息的情况下重新编译Controls.pas吗?如果是这样,怎么样?
我通过附加信息扩展这个主题,以便更好地理解:
我们使用Delphi6 Prof. Mouse有什么问题(系统错误代码5).因此,我们要重新编译为Controls.pas以替换Mouse Position getter代码.然后:
通过这些步骤,我可以使用鼠标安全代码编译源代码.
好的,但随后德尔福每次都会在F7上进入Controls.pas,并且在任何例外情况下 - 这都是非常"愤怒"的事情.
无论我从库路径中删除了"Controls.pas" - 然后调试器为它找到原始的"Controls.pas",然后打开它...... :-(
我们不在任何代码中使用"Use Debug DCU-s".
我试图从编译器选项中删除"Debug Information",但不管怎么说,Delphi打开原来的Controls.pas ...
所以我搜索到Delphi的方式不要进入"Controls.pas",但是使用我的dcu ......
我希望这能为解决问题提供更好的背景.