我正在尝试对我的代码运行调试,但不知何故它停止了工作。这是一个片段和它显示的绿线:
clean
。 .stat
和.dcu
。Release
和Debug
模式,重建,重新编译它们。Debugging
下的Project -> Options -> Delphi compiling
选项均设置为true。search paths
。我做错了什么?
答案 0 :(得分:7)
这是一种正常的编译器行为。当程序(代码行)从未在程序内的任何地方调用时,就会发生这种情况。编译器会跳过这些过程和函数(其中的所有代码行)。 见图。
DigitalOcean: Installing and configuring VNC
您只需要检查程序(行)是否真的至少从应用程序内的任何位置调用过。
<强>追加强>
当代码行永远不能被调用时也会发生这种情况,并且可以在编译时评估此(逻辑语句)(结果是事先知道的,并且在运行时不会受到影响)。编译器优化跳过这些行的代码。这就是为什么它不接受它们的休息。
这是后一种程序的反汇编。第37和38行的if false then ...
语句被省略:
答案 1 :(得分:1)
从asd-tm添加答案,我在所有单位中都包含以下行:
$(document).ready(function() {
$("#visa_status").change(function(){
var selectedCountry = $(this).val();
alert(selectedCountry);
});
});
在ProjOptions.inc文件中,我包含以下代码:
unit SomeRandomUnit;
{$I ProjOptions.inc}
通过这种方式,当我调试时,优化已关闭并且调试信息已打开,而我不必担心在Project&gt;中意外切换内容。选项。从PROJECT \ objects文件夹手动删除DCU文件(与上面的.inc文件结合使用)应该保证断点再次起作用(至少在DEBUG版本中)。