加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

发布时间:2020-12-15 04:22:47 所属栏目:大数据 来源:网络整理
导读:有时我正在逐步调试,就在FormCreate事件之前或者在FromDestroy之后调试器开始打开DevExpress单元(cxContainer.pas,…)之前,所以在FormCreate之前我的“F8”会引导我转向cxContainer而不是进入我的代码的下一行. (这只是一个例子,它当然可以发生在任何第三方
有时我正在逐步调试,就在FormCreate事件之前或者在FromDestroy之后调试器开始打开DevExpress单元(cxContainer.pas,…)之前,所以在FormCreate之前我的“F8”会引导我转向cxContainer而不是进入我的代码的下一行.

(这只是一个例子,它当然可以发生在任何第三方库中)

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

当然,有时调试库很有用,但在大多数情况下并非如此.

解决方法

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

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

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

如果要调试组件,可以转到“Project | Options | Delphi Compiler | Compiling”,并启用“Use debug .dcus”.这将迫使编译器使用“Debug DCU path”而不是“Library path”.

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

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

编辑:如果你采取这种方法,并希望有代码浏览(Ctrl Click)工作;请注意,在编译软件包的发行版时,必须在“Project | Options | Delphi Compiler | Compiling”中将Symbol Reference Info设置为“Reference Info”;否则,Ctrl Click将不适用于这些单位.默认情况下,发布构建配置将符号引用信息设置为无.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读