gpt4 book ai didi

Delphi:如何从调试器中排除单元?

转载 作者:行者123 更新时间:2023-12-03 14:49:11 26 4
gpt4 key购买 nike

有时,当我逐步调试时,就在 FormCreate 事件之前或 FromDestroy 之后,调试器开始打开 ​​DevExpress 单元(cxContainer.pas,...),因此在 FormCreate 之前,我的“F8”引导我到 cxContainer 而不是进入我的代码的下一行。

(这只是一个例子,当然任何第三方库都可能发生)

如何告诉调试器“仅调试我的单元”(仅调试 dpr 文件中列出的 pas 文件?)

当然,有时调试库很有用,但在大多数情况下却没有。

最佳答案

您最好遵循第三方组件的 VCL 约定:

  • 将所有第三方软件包中的 DCU 输出路径更改为与存储 PAS 文件的文件夹不同的文件夹。
  • 在 Debug模式下编译每个包一次,并将生成的 DCU 文件保存在文件夹中(例如 Debug DCU)。
  • 再次编译每个包,但这次是在 Release 模式下,并将生成的 DCU 文件保存在文件夹中(例如 Release DCU)。
  • 转到 Delphi 选项并将发布 DCU 的路径添加到“库路径”。
  • 在Delphi选项中,将源文件的路径添加到“浏览路径”中。
  • 在Delphi选项中,将调试DCU的路径添加到“调试DCU路径”。

这样,当您编译项目时,Delphi 将只能看到该第三方组件的发布 DCU,因此调试器无法单步执行源代码。另一方面,由于源路径包含在“浏览路径”中,因此您仍然可以通过 Ctrl+单击单元名称或这些单元中定义的任何内容导航到 IDE 内的源代码。

如果要调试组件,可以进入“项目|选项|Delphi编译器|编译”,并启用“使用调试.dcus”。这将强制编译器使用“调试 DCU 路径”而不是“库路径”。

VCL 的工作原理相同,通常在调试项目时不会进入 VCL 源代码,但如果启用“使用调试 .dcus”,您也可以调试 VCL 源代码。

JVCL 也以相同的方式组织其包和源代码。

编辑:如果您采用这种方法,并且希望代码浏览(Ctrl+单击)正常工作;请注意,编译release版本的包时,必须将“Project | Options | Delphi Compiler | Compiling”中的Symbol Reference Info设置为“Reference Info”;否则,Ctrl+Click 对这些单位不起作用。默认情况下,发布构建配置将“符号引用信息”设置为“无”。

关于Delphi:如何从调试器中排除单元?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4107704/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com