【问题标题】:Delphi 7 not able to debug using break pointsDelphi 7 无法使用断点进行调试
【发布时间】:2015-07-04 10:27:01
【问题描述】:

Delphi 7 我无法将我的应用程序调试为我的 delphi 7 表单单元中的一半代码,因为它没有在左侧排水沟上显示蓝点,当我运行时无法到达任何断点我的申请..

【问题讨论】:

  • 请添加截图或其他内容。
  • 在这里工作正常。你的方案有什么不同?
  • 如果您从断点管理器添加断点 - 它们是否有效?您检查过CRLF bug 的文件吗?
  • 您可以尝试删除(或重命名,如果您担心的话)该项目的 dsk 文件,然后重新加载该项目。
  • 你是说有些代码行有蓝点,而有些没有?如果是这种情况,则表明无法访问不带点的代码,并且链接器已将其从可执行文件中删除。例如,如果您有一个方法,但该方法从未被调用。

标签: delphi delphi-7


【解决方案1】:

你解释它的方式 - 如果一个单元有一些可用的断点,但其他的没有,那么听起来该代码是无法访问/未使用的。 Delphi 编译器足够聪明,以至于它不会编译任何它检测到的从未使用过的代码。如果它不编译,那么就没有办法在那里使用断点。

【讨论】:

  • 是的,MartynA 仅适用于我被卡住的这个特定项目,你明白我被卡住的地方......你有解决此类问题的任何方法吗
【解决方案2】:

这是一种解决方法,但确实有效。

  • 构建您的应用;
  • 删除生成的 exe 文件以确保它会再次创建;
  • 选择所有代码并将其粘贴到记事本中;
  • 将“空白”文件保存到 Delphi;
  • 从记事本中选择所有文本;
  • 再次粘贴到Delphi文件中并保存;
  • 再次构建您的应用;

我在源代码中粘贴了一个特殊字符时遇到了同样的问题。

如果这样做后您仍然无法编译,只需粘贴您的代码供我们审核。

【讨论】:

    【解决方案3】:

    不确定这是否是问题所在,但默认情况下优化是打开的。编译器可能正在删除代码。调试时,可以在编辑器中看到代码,但是断点不会打到优化出来的行。

    您可以在 Project Options > Compiler > Optimization 中关闭优化,但更好的方法是:

    * Project Options > Directories/Conditionals
    * In the Conditional defines box, add "DEBUG" and click Ok
    * Return and add "NDEBUG" and click Ok
    * Now at the top of the file which you want to debug add this code:
    {$IF Defined(DEBUG)}
        {$O-}       // Debug build
    {$ELSEIF Defined(NDEBUG)}
        {$O+}       // Non-debug (ie. release) build
    {$IFEND}
    

    然后,您可以在要调试时简单地将构建类型定义为“DEBUG”。在发布前设置为“NDEBUG”。不确定是不是您的问题,但希望对您有所帮助。

    【讨论】:

      【解决方案4】:

      转到菜单 项目 |选项...

      转到标签编译器

      检查调试框架中的所有标志

      【讨论】:

        猜你喜欢
        • 2012-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-28
        • 1970-01-01
        • 1970-01-01
        • 2021-09-12
        • 1970-01-01
        • 2012-10-15
        相关资源
        最近更新 更多