我偶尔会在Delphi中失去断点功能。
我以为这是Delphi 2009的问题,但现在我在Delphi XE中也遇到了同样的问题。
在Delphi 2009中,通过删除.dproj文件,我使断点再次起作用。
在Delphi XE中,我无法使断点出现。我已经安装了更新1和所有热修复补丁。
有人有解决方案吗?
我偶尔会在Delphi中失去断点功能。
我以为这是Delphi 2009的问题,但现在我在Delphi XE中也遇到了同样的问题。
在Delphi 2009中,通过删除.dproj文件,我使断点再次起作用。
在Delphi XE中,我无法使断点出现。我已经安装了更新1和所有热修复补丁。
有人有解决方案吗?
于是,我花了几个小时进行测试,寻找可能设置错误指针的源代码,后来可能导致文本常量发生变化。我将消息框放置在第一个单元的初始化部分中,该单元是我能够编辑的单元初始化链中的第一个,但已经更改了字符!必须在启动应用程序时非常早地进行更改!
最后,我弄清楚了,出现在我的文本中的字符总是$CC-这正是INT 3的汇编代码,也就是Delphi用于设置断点的代码。当在该单元中向上或向下移动断点时,改变的字符的位置也会向左或向右移动一些字符!而且错误字符移动的数量恰好与所涉及的行需要的估计汇编代码字节数相对应。在接近彼此的行中设置两个断点,突然间有两个字符改变了!当从该单元中删除所有断点时,文本保持不变!所以只有一个结论:当尝试设置断点失败时,Delphi本身会更改这些文本。我无法摆脱这个bug。所有关于重新同步Delphi源代码和目标代码文件的内部簿记的提示都没有帮助我解决问题!由于相关单元主要由多个{$IFDEF}之间的{$I}行组成,包括一些不同但较长的Pascal文本,因此我认为Delphi在处理太长的包含或条件编译器指令时存在问题。所以我删掉了包含文件并将源代码文本直接放入单元中,并删除了{$IFDEF},这编译没有错误,但是设置断点也会更改我的文本常量,而不是停止执行。完全相同!通过使用F9运行应用程序,断点将按预期工作。我正在使用XE4,我不知道这是否会“修复”Delphi的先前版本。
回答有点晚,但我也遇到了这个问题。
如果我在项目管理器中使用调试配置激活了 MyPackage.bpl(加粗),然后编译它,我就可以看到 IDE 注册了调试信息(编辑器左侧的蓝色点)。
但是当我激活了使用 MyPackage.bpl 的 MainProject.exe 时,那些蓝色点会消失,表示调试信息不再存在。经过一番思考,我意识到我没有在 Debug 配置上设置依赖项(右键单击 MainProject.exe -> Dependencies),而是在 Release 配置上设置了依赖项。
每次我编译 MyProject.exe 时,它都会链接到 Release 配置,而不是调试配置!
因此,请检查您的依赖项配置!
我在 Delphi 编译中勾选了 MSBuild(我们使用 MS Builds)。这会导致断点无法正常工作。取消勾选后问题得到解决。
由于在新笔记本电脑上安装 Delphi XE 时遇到此问题时,这是我找到的最佳资源,因此我将为 Delphi XE 添加一个可能的答案。
如果您使用的是双显示器设置,并且代码编辑器窗口位于第二个显示器上,则工具提示将不会显示。如果编辑器窗口位于主显示器上,则可以正常工作。非常令人沮丧。可能是驱动程序问题。