delphi – 由于优化,我得到’变量x无法访问

即使构建配置设置为“Debug”且优化为False,我也会因“优化”而得到“Variable ForAllUsers无法访问”.所以,我无法调试我的程序.

为什么我这样做?
按“运行”按钮时会运行哪个构建?
我怎么能看到

procedure Test(ForAllUsers: boolean);
VAR
   FName,Path1,Path2: string;
   RootKey: HKEY;
begin
 Result:= FALSE;
 TRY
  if ForAllUsers
  then
    begin
     RootKey:= HKEY_CLASSES_ROOT;
     Path1:= '';
     Path2:= '';
    end
  else
    begin
     RootKey:= HKEY_CURRENT_USER;           <----- Break point here
     Path1:= '\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\';
     Path2:= '\Software\Classes\';    
    end;


结束;

更新:
我发布这个问题只有几分钟,它已经两次投票并且出演了两次.似乎这是一个非常常见的问题.接受David提供的答案.

解决方法

我们都经常遭受这种痛苦.我有时会做的是在我需要调试引用变量的变量但不执行任何操作的位置添加一些虚假代码.例如:

if x>0 then x := x*1;

或者,如果它是一个布尔值,那么:

if b then b := not not b;

沿着这些方向的东西通常足以让编译器写出使变量保持活动的代码,以便调试器可以检查它.确保将代码放在例程的底部!并确保在检查代码之前记得删除它.

相关文章

 从网上看到《Delphi API HOOK完全说明》这篇文章,基本上都...
  从网上看到《Delphi API HOOK完全说明》这篇文章,基本上...
ffmpeg 是一套强大的开源的多媒体库 一般都是用 c/c+&#x...
32位CPU所含有的寄存器有:4个数据寄存器(EAX、EBX、ECX和ED...
1 mov dst, src dst是目的操作数,src是源操作数,指令实现的...