是这个地址。从上面的监视窗口里,大家应该可以感受到VS的强大了吧。提示:双击监视窗口里面的各个“名称”或“值”可以改变这些值的哟。这里再提一个问题:问题二:怎么只观察
ame变量的某一个元素的值?尽量写出多种方式。内存窗口这是一个比较重要的窗口,我们以前很疑惑某个数据或者字符串在内存中是怎么存储的,今天我们就可以通过内存窗口进行观察。内存窗口就是显示的数据在进程内存中具体的存储位置及方式。启动内存窗口在断点断下来后可以用快捷键:CTRLALTM1234因为一共有4个内存窗口,方便我们多用。也可以在调试断点断下来的时候点击菜单栏的调试窗口内存内存1234来启动。内存窗口经常结合者监视窗口一起用。为什么,先如图:
f上面我在地址后面的编辑框里面输入的是cou
t的地址。看监视窗口的cou
t或者pCou
t后面的值就是0x0012ff5c。所以这里也说明这两个是等同的。我们惊喜的发现选中的地方跟0x80000000很像那呢?内存窗口里面可以右键选择1字节整数,字节整数,字节整数等。24我这里选择的是1字节整数。就是一个字节一个字节的显示。这里如果是四字节整数的话就是:
哈哈,是不是神奇的发现4字节结合在一起就是0x80000000。那问题三:为什么上面的内存窗口的00在前面而80在后面呢?(提示,0x80000000为8个字符宽式因为00表示一个字节,总共4字节)这里假如要在内存窗口里面查看pCou
t所指向的内存的值,就可以直接选中pCou
t指针变量,然后左键拖入内存窗口的地址编辑框(注意,这里不能直接把cou
t变量给拖下来,这样拖下来的话编辑框里就是cou
t的值0x80000000,看的就是这个地址下面的值了,至于拖pCou
t能行,很明显是因为他是指针,它的值就是cou
t变量的地址)。也就能查看cou
t变量所存储的位置及值了。其他更巧妙的用法大家自己摸索,熟悉了就能总结出用法了。提示:光标定位到某个地址的内存,可以修改这个内存的值哟。只读或保护内存除外。堆栈窗口此窗口就是方便我们看函数调用的。可以使用ALT7启动显示出来。当然也是在调试断下来后可以使用。当我们的函数调用一层又一层比如递归等,或者有虚函数时等堆栈窗口可以直接看整个调用流程,排错起来就方便多了。如图:
f代码依然断在监视窗口的那段代码截图那里,上面的堆栈窗口能够清晰的看到调用层次。当前是在mai
函数里面,通过箭头可以看出来。这里也可以看出来mai
函数之前还有函数调用mai
函数。是不是有清晰了一大步?我们可以双r