【发布时间】:2017-10-13 20:23:07
【问题描述】:
在我的一个项目中,我无法让断点按预期工作。
问题是到达断点时CPU窗口打开。事件日志正确地指示带有断点的源行号,并且事件日志中指示的断点的文件的名称与在编辑器中打开的源文件的名称和路径匹配(我放置断点的那个)。
但是,当我尝试检查变量或查看手表时,我被告知该变量未声明。到达第一个断点后,我无法设置任何额外的断点(断点显示为无效 - 带有 X 的红点),即使它是断点之后的下一行(显示绿色箭头)。事件日志表明模块有调试信息。
我尝试了以下方法:
- 删除 DPROJ 文件并让 Delphi 重新创建它
- “清理项目”
- 验证项目的调试设置是否与正确调试的其他项目的设置一致
- 删除了项目的所有 dcus,并验证构建项目将它们放在预期的位置(与 EXE 相同的文件夹)。
- 我在这里尝试了解决方案:Delphi2010-IDE keeps stoping on CPU debug window
- 我已验证调试信息和本地符号已启用。
- 我在这里尝试了建议:Delphi: why breakpoints from time to time are not usable (green highlighted line on IDE)?
请提供有关如何获得标准调试功能的建议。
【问题讨论】:
-
您在 Delphi 2010 的链接(第一个链接)中查看了两个答案(不仅仅是接受的答案),对吧?
-
@KenWhite 我没有选中使用调试 DCU。在 XE7 中,项目下没有库或浏览路径,因此我根据您的说明将 $(BDS)\LIB 添加到整体 Delphi 设置(工具 > 选项)中“要确保的另一件事是您没有 $ (BDS)\Lib\Debug 在库或浏览路径中设置的值(D2010 中的 Project->Options->Compiler);这将防止在单步执行代码时拾取调试 DCU。(将其设置为 $(BDS )\Lib 代替。)"。还是没有成功。
-
还有第三方组件源?您是在阅读整个答案,还是只是在挑选片段?
-
@KenWhite 我不是在挑选作品。据我所知,我所有的第 3 方组件的来源都在浏览路径上(我假设这就是您所暗示的)。我还没有完成以下操作,“您可能还希望打开您使用的任何第三方组件(软件包)的源代码,将它们更改为不使用调试信息,并重新构建它们。”有什么方法可以确认是否/哪个第 3 方组件可能是罪魁祸首(如果这确实是问题所在)?