我偶尔会在Delphi中失去断点功能。
我以为这是Delphi 2009的问题,但现在我在Delphi XE中也遇到了同样的问题。
在Delphi 2009中,通过删除.dproj文件,我使断点再次起作用。
在Delphi XE中,我无法使断点出现。我已经安装了更新1和所有热修复补丁。
有人有解决方案吗?
我偶尔会在Delphi中失去断点功能。
我以为这是Delphi 2009的问题,但现在我在Delphi XE中也遇到了同样的问题。
在Delphi 2009中,通过删除.dproj文件,我使断点再次起作用。
在Delphi XE中,我无法使断点出现。我已经安装了更新1和所有热修复补丁。
有人有解决方案吗?
文件中不存在调试信息。
确保您正在使用调试配置。(项目管理器
树,展开构建配置
,确保Debug
字体加粗。如果没有,则右键单击Debug
并从上下文菜单中选择激活
。)确保您对项目进行了构建而不仅仅是编译。
如果仍然无法解决问题,请从IDE的主菜单转到项目->选项
,点击Delphi编译器
下的编译
,并检查窗口右半部分的调试
部分。确保调试信息
和本地符号
都被选中。如果要跟踪进入VCL自己的源代码,请勾选使用调试dcus
(在正常调试时会变得很麻烦,完成后您将需要关闭它并对项目进行完整的构建)。同样,您需要进行构建而不是编译。
如果所有上述方法都失败了,则有可能您在Code Editor中打开的代码单位与编译器看到的不是同一个。确保您的计算机上没有多个具有相同单元名称的文件,编译器可能会先找到它们。如果您不确定,请删除该单元名称的.dcu文件,然后构建您的项目,并查看新创建的.dcu文件是否在您期望的位置。
我找到了更好的方法。
从项目管理器树中,右键单击项目,在弹出菜单中选择“清理”。
断点会神奇地重新出现,这是非常快速的方法。
Project > Clear Unit Cache
。这不会删除 DCU 文件,因此结合手动从 PROJECT\objects 文件夹中删除 DCU,可以使断点再次正常工作。 - AlainD我怀疑这种情况发生在你进行了一个发布版本的构建,并禁用了调试功能。然后你切换回调试配置并进行编译而不是构建。你无法设置断点的文件与使用禁用调试的编译产生的DCU文件对应。
只需进行构建以重新生成所有DCU文件即可使您的断点再次正常工作。
一行只有CR
,另一行只有LF
:
修复
要将所有的EOL重置为CRLF
,请在编辑器选项
中取消勾选保留行尾
(工具-选项-编辑器选项)
,
进行微小的更改,以便文件被标记为已修改,关闭文件,保存更改到XYZ.pas?是,然后重新打开。
现在所有的行结束符都是CRLF。重新构建项目,所有断点球将位于正确的位置。
对于我来说,开启远程调试符号就解决了这个问题(其他方法都没用)。项目 > 选项 > 链接,然后勾选包含远程调试符号。
我曾经遇到与XE4相同的问题。几小时前,我发现了这篇文章。上面提供的解决方案都无法解决我的问题。而对我来说正确的解决方案 - 目前为止 - 是添加“远程调试符号”选项。奇怪的是我并没有使用远程调试。不管怎样,现在看起来可以了。
这是一个bug,重新启动Delphi将会解决您的问题。
断点无法正常工作的另一个原因可能是(通常在 Delphi5 中测试):
单元中过多的过程。
解决方法是将过程移动到另一个单元中。