如题,当单步调试时,只能查看堆栈上的值,static放在静态存储区,看不到static的当前值,通过什么方法能看到static的当前值,恳请大家给指点指点,谢谢哈
解决方案 »
- mfc播放器视频处理的问题
- 急求关于 netmeeting 开发的小程序源码! 网上下的例子看不懂 急用!!!! 500分求一个程序,快!
- 请问如何选择view中的图形,help me!!!!!!!!!!!
- Undo/Redo功能是如何实现的?
- 小弟我最近练习写了一段日期运算的函数,功能都实现了,但对代码的质量心里没底,望请这里的前辈给我当当老师点评一下,教我如何写优秀代
- 请指教:支集,紧支集,稠密,正则
- MFC对话框,已经将整个对话框设置为半透明,在picture控件中插入了一张位图,想把位图的背景也设置成透明。
- 如何把标准输出重定向为指定缓冲区
- 在程序中如何得到指令指针的值
- 如何对html中链接的onclick事件进行拦截
- MD5算法 在MFC项目中无法调用MD5Init MD5Update API函数
- socket模拟登陆发帖的问题?
局部变量窗口旁边会有一个监视窗口。添加yourclass::yourStatic;然后就可以看到了
这样是可以的,不过每次调试时,我都把static局部变量赋给一个临时值,查看这个临时值,觉得好麻烦哦
有没有什么方法,或者工具直接查看static局部变量
我知道你的意思,你可以自己试下,你回发现监视窗口提示:symbol “XXXXX” not find
我是调试到函数内部,看函数里面的局部static值,但监视窗口提示:symbol “XXXXX” not find
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.打开内存窗口,输入静态变量的地址,就可以观看了.
普通变量就能看到,static局部变量就看不到
static i = 0;
int *p = &i;然后就可以在Watch窗口中,通过*p的形式查看函数内部静态变量的值了。VC6.0中这种情况是存在的,不过在VS2008中就不存在不能查看函数内静态变量的问题。