如题,当单步调试时,只能查看堆栈上的值,static放在静态存储区,看不到static的当前值,通过什么方法能看到static的当前值,恳请大家给指点指点,谢谢哈

解决方案 »

  1.   

    你定义一个动态的变量存储静态的static 查看 
      

  2.   

    你说的是类静态变量么~?
    局部变量窗口旁边会有一个监视窗口。添加yourclass::yourStatic;然后就可以看到了
      

  3.   

    就是一般函数里面的静态局部变量,如果定义成全局的static变量,监视窗口是可以看到static的值,但是定义成static局部变量,监视窗口提示:symbol “XXXXX” not find,  一直不知道咋回事。郁闷
      

  4.   


    这样是可以的,不过每次调试时,我都把static局部变量赋给一个临时值,查看这个临时值,觉得好麻烦哦
    有没有什么方法,或者工具直接查看static局部变量
      

  5.   


    我知道你的意思,你可以自己试下,你回发现监视窗口提示:symbol “XXXXX” not find
      

  6.   


    我是调试到函数内部,看函数里面的局部static值,但监视窗口提示:symbol “XXXXX” not find
      

  7.   

    heiheizh618说的方法是对的,应该可以看到的。。楼主确认变量名是正确的么?或者调试进那个函数,然后鼠标移动到你的Static变量上,停留下,你看有值显示不??
      

  8.   

    如果你是用vs2005以上版本的话 可以在立即窗口(Immediate window)中输入你要查询的变量回车就行 
      

  9.   

    这个简单,比如说你想监视某个函数中的局部静态变量.具体操作过程如下:
    1.开始调试之后,把鼠标停留在函数名上,可以看到函数地址(即函数名后面的第一个十六进制数).
    2.打开反汇编窗口,按照这个地址找出函数存储在内存中的位置.在这段汇编代码里,你可以找到静态变量的地址.如下所示,地址为0x157164.
    static int i = 0;
    i++;
    001517EE  mov         eax,dword ptr [i (157164h)] 
    001517F3  add         eax,1 
    001517F6  mov         dword ptr [i (157164h)],eax 
    3.打开内存窗口,输入静态变量的地址,就可以观看了.
      

  10.   


    普通变量就能看到,static局部变量就看不到
      

  11.   

    可以这样:
    static i = 0;
    int *p = &i;然后就可以在Watch窗口中,通过*p的形式查看函数内部静态变量的值了。VC6.0中这种情况是存在的,不过在VS2008中就不存在不能查看函数内静态变量的问题。
      

  12.   

    vc6是看不到,我就是搜索这个搜到这里来的,可能vs2005,vs2008修复了这个问题吧