Delphi 7无法使用断点进行调试

Delphi 7无法使用断点进行调试,delphi,delphi-7,Delphi,Delphi 7,Delphi 7我无法调试我的应用程序,因为我的Delphi 7表单单元中有一半的代码,因为它没有在左侧的槽上显示蓝点,在我运行应用程序时无法达到任何断点。按照您的解释-如果一个单元有一些断点可用,而其他单元没有,那么听起来好像代码是不可访问/未使用的。Delphi编译器足够聪明,它不会编译任何它检测到从未使用过的代码。如果它没有编译,那么就没有办法在那里使用断点。这是一种解决方法,但它可以工作 构建你的应用程序 删除生成的exe文件,以确保再次创建该文件 选择所有代码并粘贴到记事本中 将“空

Delphi 7我无法调试我的应用程序,因为我的Delphi 7表单单元中有一半的代码,因为它没有在左侧的槽上显示蓝点,在我运行应用程序时无法达到任何断点。

按照您的解释-如果一个单元有一些断点可用,而其他单元没有,那么听起来好像代码是不可访问/未使用的。Delphi编译器足够聪明,它不会编译任何它检测到从未使用过的代码。如果它没有编译,那么就没有办法在那里使用断点。

这是一种解决方法,但它可以工作

  • 构建你的应用程序
  • 删除生成的exe文件,以确保再次创建该文件
  • 选择所有代码并粘贴到记事本中
  • 将“空白”文件保存到Delphi中
  • 从记事本中选择所有文本
  • 再次粘贴到Delphi文件中保存
  • 重新构建你的应用程序
我在源代码中粘贴了一个特殊字符,也遇到了同样的问题


如果执行此操作后仍然无法编译,只需粘贴代码供我们查看。

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

您可以在“项目选项”>“编译器”>“优化”中关闭优化,但更好的方法是:

* 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”。不确定这是否是您的问题,但希望能有所帮助。

进入菜单项目|选项…

转到选项卡编译器


检查调试中的所有标志

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