【发布时间】:2012-08-22 13:30:58
【问题描述】:
调试器会在错误时进入源代码(例如使用 F7),但我想恢复正常工作模式,其中 Delphi 基本 DCU(库)仅编译到我的代码中,并且源不用于调试。
例如,在我的程序中出现错误时,调试器正在逐步进入 Controls.pas,进入 TControl.Click。通常情况下(安装后),Delphi 会跳过这些方法。
我应该在没有调试信息的情况下重新编译 Controls.pas 吗?如果有,怎么做?
我用附加信息扩展了这个主题,以便更好地理解:
我们使用 Delphi6 Prof. 鼠标有什么问题(系统错误代码 5)。 所以我们要重新编译到 Controls.pas 来替换 Mouse Position getter 代码。 那么:
- 我为它创建了一个文件夹:“c:\D\Common\Delphi_Patches\Delphi_6\”
- 我把原来的Controls.pas放进去。
- 我修改了 Controls.pas,替换了 position getter 代码。
- 我设置了Delphi的Library路径,将第一个文件夹设置为“c:\D\Common\Delphi_Patches\Delphi_6\”
通过这些步骤,我可以使用鼠标安全代码编译源代码。
好的,但是 Delphi 每次都会在 F7 上进入 Controls.pas,并且在任何例外情况下 - 这是非常“愤怒的人”的事情。
不管我从库路径中删除了“Controls.pas” - 然后调试器正在为它找到原始的“Controls.pas”,然后打开它...... :-(
我们不在任何代码中使用“使用调试 DCU-s”。
我试图从编译器选项中删除“调试信息”,但没关系,Delphi 是打开原始 Controls.pas...
所以我搜索Delphi的方式不要进入“Controls.pas”,而是使用我的dcu...
我希望这能提供更好的上下文来理解问题。
【问题讨论】:
-
不确定我是否正确,但是如果您想在调试时进入
Controls.pas,然后转到Project / Options并找到与Use debug .dcus相关的内容,保存选项并重新构建您的项目(不仅编译,重新构建)。然后你就可以进入系统单元了。 -
@TLama,我觉得问题是
Use debug .dcus现在被勾选了,发帖人想停止插手。当然,你的评论还是对的,但是解决办法是取消选中Use debug .dcus复选框。 :-) 海报:当您在标签或文本中告诉我们您使用的是哪个 Delphi 版本时,它会有所帮助。 -
@Ken,或者问题在于即使对于新项目,此设置仍然存在(由
Default复选框引起)。很难说... -
另一个可能的问题是 VCL 源代码对编译器可见(通过搜索路径),并且每次构建项目时都会重新编译。如果是这样,解决方案是在编译器选项中编辑搜索路径参数。
-
回复:更新 - 将 {$D-} 放在修改后的 controls.pas 之上。