CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  VCL组件开发及应用

调试时看不到变量值是为什么?

楼主dahua(大华)2003-09-01 17:38:45 在 Delphi / VCL组件开发及应用 提问

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里还是显示了结果的。这是为什么?如何解决? 问题点数:100、回复次数:18Top

1 楼IwantFlay(小飞)回复于 2003-09-01 17:47:51 得分 0

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

2 楼dahua(大华)回复于 2003-09-01 17:50:42 得分 0

不是吧,这样要有用还真是没天理了  
   
  谁碰到过这样的情况,请一定帮忙,保证结帖Top

3 楼IwantFlay(小飞)回复于 2003-09-01 18:13:32 得分 0

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

4 楼IwantFlay(小飞)回复于 2003-09-01 18:19:36 得分 0

:)是挺奇怪的.   
  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;  
   这样就可以居然.Top

5 楼weizi2000(秋风啊)回复于 2003-09-01 18:25:17 得分 0

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

6 楼dahua(大华)回复于 2003-09-01 18:30:31 得分 0

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

7 楼whqcfp(one_dollar)回复于 2003-09-01 18:34:22 得分 0

UP!Top

8 楼dahua(大华)回复于 2003-09-01 19:56:14 得分 0

3x   for   ur   up  
  me   up   tooTop

9 楼hiflower(花)回复于 2003-09-02 08:41:11 得分 0

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

10 楼dahua(大华)回复于 2003-09-02 12:22:23 得分 0

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

11 楼hiflower(花)回复于 2003-09-02 12:35:03 得分 0

那就重启系统试试,再不行只有重装了Top

12 楼eliphe(未来)回复于 2003-09-02 12:48:07 得分 100

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

13 楼ehom(?!)回复于 2003-09-02 13:04:06 得分 0

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

14 楼viaboy(平凡)回复于 2003-09-02 13:54:05 得分 0

upTop

15 楼sailer_shi(孤独的我,孤单的走,孤单的活着,孤单呀)回复于 2003-09-02 14:03:37 得分 0

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

16 楼lihongyue(小头帘)回复于 2003-09-02 14:47:45 得分 0

我试过了,可以看到啊。Top

17 楼dahua(大华)回复于 2003-09-02 17:12:28 得分 0

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

18 楼ehom(?!)回复于 2003-09-02 17:54:39 得分 0

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

相关问题

  • 调试程序时在watch里为什么看不到变量的值
  • VC中Static变量,调试的时候,查看不到例如
  • 为什么我的 CString型的变量在调试时看不到值,其他类型的都可以看到?Add watch,显示 Cant display!
  • 调试webapplication,怎样看变量值
  • Jbuilder变量调试
  • 在线等待,为什么我在debug时把mouse放在变量上看不到值了
  • 调试时,为什么看不见变量的值?
  • 单步调试,怎么不能查看CString 变量的值?
  • 请教:调试中如何查看某些变量的值.
  • vc调试时类变量值的问题

关键词

  • 断点
  • 代码
  • 执行
  • 优化
  • delphi
  • 变量
  • 看不到
  • inttostr
  • 值
  • 引用

得分解答快速导航

  • 帖主:dahua
  • eliphe

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo