procedure TForm1.Button1Click(Sender: TObject);
var
  a,b,c : Integer;
begin
  a := 1;
  b := a;
  c := b;
  Edit1.Text := IntToStr(c);  //此处断点
end;a,b,c都被引用过,可以看到debug时代码没有被优化掉(左边有点),按理说a,b,c的值都应该可以看到,在别人的机器上也确实如此。但在我机器上死活看不到,说Inaccessible value,但Edit1里还是显示了结果的。这是为什么?如何解决?

解决方案 »

  1.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      a,b,c : Integer;
    begin
      a := 1;
      b := a;
      c := b;
      Edit1.Text := IntToStr(c);  
    end;//此处断点
      

  2.   

    刚才写错了.是在Edit1.Text := IntToStr(c); 的下一行加一行代码,设一上数点看一下.不过,你试了一下你的代码.没有问题啊.
    就是照你的,还是可以看到c的值的.
    你是不是在断点进,选中变量c,然后按一下CTRL+F7看看不过在 b:=a;设断点,却不行,问题应该就在这儿
      

  3.   

    :)是挺奇怪的. 
    procedure TForm1.Button1Click(Sender: TObject);
    var a,b,c:integer;
    begin
      a := 1;
      b := a;
      if b<>0 then
         c := b;
      Edit1.Text := IntToStr(b);
    end;
     这样就可以居然.
      

  4.   

    可以看的到的,Edit1.Text := IntToStr(c);  //此处断点,我刚试过。
    变量窗口显示刚才执行过的那句代码的值,执行过就被覆盖了,也就是,
    执行到end;时,它执行Edit1.Text := IntToStr(c);即把c := b 覆盖了,
    它就不会显示1,而在执行到Edit1.Text := IntToStr(c); 时其显示上一
    句执行结果。若你的不能显示,则应是你的Delphi系统有问题
      

  5.   

    to IwantFlay(我很爱她!!!!!!!!!!) : 
    "不过在 b:=a;设断点,却不行,问题应该就在这儿"
    此时不行是因为a没有被引用过,一旦引用过就应该能看到,可是我就死活看不到
    不是在哪里设断点的问题to weizi2000(秋风啊) :
    可以肯定是系统有问题,不总是这样的,前两天调试还好好的
    我就是想知道有没有什么环境的设置可以解决这个问题
    或者是delphi的bug?
    重装有用么?
      

  6.   

    3x for ur up
    me up too
      

  7.   

    Project|Options 打开  Project Options 对话框,点 Compiler 窗格,在 Code generation 部分把 Optimization 前的勾去掉,编译器就不会帮你优化了。这时就算你在 end 上设断点,也能看到全部数据。:)
      

  8.   

    to  hiflower(花):
    这个我知道的,就算不去掉优化,只要引用了也是可以看到值的
    我现在已经去掉了,可还是看不到
      

  9.   

    这个可能和金山词霸或winamp有关,因为delphi显示这种hint信息使用全局钩子,而金山和winamp等软件也有这样的全局钩子,所以造成冲突,就显示不出来了,建议关掉类似程序重试。
      

  10.   

    编译器优化的问题,这里b := a;c := b;被优化成了一条传输指令,所以b的值当然无法看到,因为它根本就没使用过
      

  11.   

    你可以随便设上一个断点,然后打开View->debug windows->local variables就可以看到变量得值了
      

  12.   

    to ehom(?!) :不是这样的,在别人的机器上可以看到的to  eliphe(eliphe Alotus) :我试试看吧,谢谢
      

  13.   

    我只是说b的值看不到,这一定我可以确定,打开编译优化会少生成一条指令,不是说猜测,通过看CPU窗口可以证实如果你是说所有值都看不到,那建议先给Delphi打补丁(当然我不知道你的版本),不打补丁,IDE中的Hint经常莫名其妙的出不来