有没有办法只跟踪Delphi中的项目源?

J..*_*... 11 delphi debugging trace project delphi-2010

我正在使用Delphi 2010,我想知道是否有一种方法可以跟踪项目中的代码,而无需跟踪调用包含的VCL.

例如 - 您输入一个断点然后使用Shift+ F7来逐行跟踪.现在你在VCL中调用了一些冗长的过程 - 在我的例子中,它通常是一个Measurement Studio或其他组件,用于绘制一堆I/O,OPC或其他位的doodads.无论如何,发生的事情是调试器跳出活动源文件,打开组件源,并逐行跟踪.通常这是我不关心的数百或数千行代码 - 我只想让它执行并返回到MY项目中的下一个源代码行.

显然你可以通过在外部调用的每个实例周围设置断点来实现这一点,但通常有太多不能使其变得切实可行 - 每次我想要逐步执行一段代码时,我会花一小时设置一百个断点.

是否有设置或工具可以做到这一点?允许用户跟踪项目中的代码,同时静默执行项目外部的代码?

Rob*_*edy 12

调试器不会逐步执行没有调试信息的单元,因此目标是使编译器省略您不感兴趣的单元的调试信息.

将库单元放在单独的库项目中.这让你有那些单位单独编译设置不影响能力项目.编译库而不启用调试信息.然后从项目中删除这些库单元.您可以继续使用它们,但它们不再属于您的项目.

这里的一个重要方面是DCU应位于与源代码不同的目录中.如果编译器发现DCU并且它恰好在同一文件夹中看到源代码,那么当您真的不想要它时,它可能会重新编译该代码.将项目的"DCU输出文件夹"设置为默认值以外的值.

要真正做到正确,您可以执行VCL所做的工作,并编译两个不同版本的库.用调试信息编译一个,没有调试信息,并将编译后的文件放在不同的目录中.将包含调试版本的目录添加到Delphi配置中; 应该已经列出了一个包含Delphi提供的调试DCU的文件夹.

当您设置两个不同的版本时,您可以自己选择是否要进入库代码.只需在项目设置中切换"使用调试DCU"选项即可.当您切换该设置时,Delphi将自动在搜索路径中添加和删除debug-version文件夹.


请注意,即使您的库单元有一个单独的库项目,也不需要链接或分发该项目生成的DLL或包.您可以直接在EXE项目中继续使用DCU文件.您只需设置单独的项目,以便为这些单元选择不同的编译设置.将库项目的DCU输出文件夹添加到EXE项目的搜索路径,您可以直接继续使用这些单元,而无需分发库项目的DLL或包.

IDE可能会尝试自动将新目录添加到搜索路径.不要支持这一点.如果IDE为您添加了一个源目录,并且您不希望它在那里,请随意删除它.IDE只是试图提供帮助,但它不知道你有单独的源文件夹和编译文件夹的计划.