有没有办法通过windbg查看堆栈帧上指针存储的地址?
这是我用 VC++ 编写的一个简单程序:
#include "stdafx.h
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
int foo = 10;
int* bar = &foo;
cout<<bar<<endl;
getchar();
return 0;
}
我机器上的输出是: 0035F95C
通过windbg附加进程并查看反汇编后,我无法计算上面的地址。我知道我需要到达堆栈帧并查看本地变量并遍历地址,但不确定 Windbg 中的命令。你会如何处理这个问题?
Here is a trivial program i wrote in VC++:
#include "stdafx.h
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
int foo = 10;
int* bar = &foo;
cout<<bar<<endl;
getchar();
return 0;
}
The output on my machine is:
0035F95C
After attaching the process through windbg and viewing the disassembly, i am not able to compute the address above. I know i need to get to the stack frame and look at the locals and walk the addresses but not sure on commands in windbg. How would you approach this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
使用
.frame
命令查看堆栈帧。使用
dv
或dt
命令查看变量的值。http://www.codeproject.com/KB/debug/windbg_part1.aspx
Use the
.frame
command to see the stack frame.Use the
dv
ordt
command to view the value of variable.http://www.codeproject.com/KB/debug/windbg_part1.aspx