Delphi 为什么断点是绿色的并且不工作?
我试图对我的代码运行调试,但不知为什么它停止了工作。下面是一个代码段及其显示的绿色线条:Delphi 为什么断点是绿色的并且不工作?,delphi,delphi-10-seattle,Delphi,Delphi 10 Seattle,我试图对我的代码运行调试,但不知为什么它停止了工作。下面是一个代码段及其显示的绿色线条: 我尝试右键单击我的项目并清理它 尝试 要删除临时文件,如.stat和.dcu 来回切换到Release和Debug模式,重建、重新编译它们 Project->options->Delphi compiling下的debug选项都设置为true 检查搜索路径中是否没有重复文件 其他项目工作正常 我也试过咒骂 我做错了什么?这是一种正常的编译器行为。当过程(代码行)从未从程序中的任何地方调用时,就会发生这
- 我尝试右键单击我的项目并清理它李>
- 尝试
要删除临时文件,如
和.stat
.dcu
- 来回切换到
和Release
模式,重建、重新编译它们Debug
下的Project->options->Delphi compiling
选项都设置为truedebug
- 检查
搜索路径中是否没有重复文件
- 其他项目工作正常
- 我也试过咒骂
我做错了什么?这是一种正常的编译器行为。当过程(代码行)从未从程序中的任何地方调用时,就会发生这种情况。编译器跳过这些过程和函数(其中的所有代码行)。 请看图片 您只需要检查过程(行)是否真的至少从应用程序中的任何位置调用过一次 追加 当永远不能调用代码行并且可以在编译时对其(逻辑语句)进行计算(结果是预先知道的,并且在运行时不会受到影响)时,也会发生这种情况。编译器优化跳过这些行的代码。这就是为什么它不接受他们的休息 下面是后一个程序的分解。
如果为false,则省略第37行和第38行的…
语句:
除了asd tm的答案之外,我在我的所有单元中都包含以下行:
unit SomeRandomUnit;
{$I ProjOptions.inc}
在ProjOptions.inc文件中,我包含以下代码:
// Compiler switches:
// Debug Info Optimisation
// DEBUG On Off
// RELEASE Off On
{$IFDEF DBG}
{$D+}
{$O-}
{$ELSE}
{$D-}
{$O+}
{$ENDIF}
这样,当我调试时,优化功能关闭,调试信息打开,而不用担心在Project>Options中意外切换某些内容。从PROJECT\objects文件夹中手动删除DCU文件(与上面的.inc文件结合使用)应该可以保证断点再次工作(至少在调试版本中)。您正在进行调试版本吗?如果咒骂没有帮助,我不知道该说什么。也许您在运行->参数->调试器->主机应用程序中有一个主机应用程序集不适合您的需要?或者在开始调试之前必须设置运行->附加到进程?尝试将
.dproj
文件重命名为其他文件,例如添加扩展名.old
,然后重新加载项目。它将自动生成一个新的。当然,您可能会丢失一些设置,但这似乎是最简单的解决方案。请定期处理此问题。它存在于几个Delphi版本直到最新版本。我从来没有找到一种复制它的方法。尽管如此,为了使它再次工作,我遵循以下步骤:1)进行清理,2)停止IDE,3)进行完整构建。