LaB*_*cca 30 ide delphi breakpoints delphi-xe
我不时会在Delphi中丢失断点功能.
我认为这是一个Delphi 2009问题,但现在我在Delphi XE中也有它.
在Delphi 2009中,通过删除.dproj文件,我使断点再次起作用.
在Delphi XE中,我无法显示破坏点.我有更新1应用了所有修补程序.
有没有人有办法解决吗?
Ken*_*ite 48
调试信息不存在于文件中.
确保您使用的是Debug配置.(Project Manager树,展开Build Configurations,确保Debug是粗体.如果不是,请右键单击Debug并Activate从上下文菜单中选择.)确保然后执行项目构建,而不仅仅是编译.
如果仍然不起作用,请Project->Options从IDE的主菜单中,单击Compiling下面的Delphi Compiler,然后检查Debugging窗口右半部分.确保Debug Information并且Local Symbols都已选中.如果您正在尝试跟踪VCL自己的源代码,还要检查Use debug .dcus(您需要关闭它,并在完成后立即完成项目的完整构建,因为当您正常调试时会很烦人).再次,你将要构建而不是编译.
如果上述所有方法都失败了,另一种可能性是您在代码编辑器中打开的代码单元与编译器看到的代码单元不同.确保您的计算机上没有该文件的多个副本,而该位置是编译器可能首先找到的位置.如果您不确定,请删除具有该单位名称的.dcu文件,然后执行项目构建,并查看新创建的.dcu是否位于您期望的位置.
LaB*_*cca 21
我找到了更好的方法.
在项目管理器树中,右键单击项目,然后从弹出菜单中选择"清除".
断点重新出现,这是一种非常快速的方法.
Dav*_*nan 14
我怀疑当你完成发布版本并禁用调试时会发生这种情况.然后切换回调试配置并进行编译而不是构建.您无法设置断点的文件对应于具有禁用调试的编译生成的DCU的文件.
简单地进行构建以重新生成所有DCU文件将使您的断点再次起作用.
这是未对齐代码与断点标记(装订线中的蓝色/红色“药丸”)的另一个原因。
编辑器识别三种不同的行尾,
其中,CRLF是编辑器中的默认设置。
然而,编译器似乎并不认为CR only是行尾,只有CRLF和LF only。因此,如果您的源文件恰好有一个或多个CR only,“蓝色药丸”将从源文件中偏移。
您可能CR only从 Internet 等处获得了带有EOL(行尾)字符的源文件。我记得用作CR onlyEOL 的MAC OS 。
要验证文件中的 EOL,您可以在编辑器中打开 EOL 的显示
( Tools - Options - Editor options - Source options - Show line breaks).
这些符号看起来很奇怪(见下图),但对于 CRLF,C 位于 L 之上,C 位于 R 之上,代表 CR,L 位于 F 之上,代表 LF。
下图显示了CRLF我在十六进制编辑器中强制CR only一行和LF only另一行后的正常 EOL ( ) 和 EOLS 。如上所述,它是CR only从源代码偏移断点标记的。
正常的CRLFEOL:
一行CR only和一行LF only:
修复
要重置所有EOL对CRLF,勾去掉Preserve line ends在Editor Options
( Tools - Options - Editor options),
进行微不足道的更改,以便将文件标记为已修改,关闭文件,将更改保存到 XYZ.pas?YES,并重新打开。
现在所有行结尾都是 CRLF。重建项目,所有断点球都将位于正确的位置。
我和XE4有同样的问题.这就是我几个小时前发现这篇文章的原因.上述解决方案均不适合我.对我来说,正确的解决方案 - 到目前为止 - 是添加"远程调试符号"选项.奇怪,因为我不使用远程调试.无论如何它现在看起来还不错.
| 归档时间: |
|
| 查看次数: |
36058 次 |
| 最近记录: |