打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Windbg提示:KN、.Frame、DV和DT

我们很多人都认为调试器中的一些简单命令是理所当然的,这些命令可以让生活变得轻松。我想了几个特别能搭配的。第一个命令是kn。Kn将显示当前调用堆栈,并在单个调用的最左边包含堆栈帧编号。
我在Windbg中运行BadWindow.EXE文件,通过~0s将我的线程设置为线程0。然后我只需键入kn。这将转储调用堆栈,如您所见,在最左边的每个调用都有堆栈帧号。

使用上面堆栈中的堆栈帧2,让我们看看它使用的局部变量。首先,我们必须使用.frame和frame number获取上下文。

 

现在要转储局部变量,我们可以使用dv(Display Local Variables)命令。(请注意,您需要为正在调试的二进制文件使用专用符号才能使其正常工作)。

如你所见,我们这里有几个当地人。现在,因为我有这个二进制的私有符号,所以调试器已经理解了每个变量的结构和数据类型。
此外,因为我已经在堆栈帧上下文中,所以我可以简单地dt(display type)加上变量的名称,调试器就可以算出地址。让我们dt msg看看它包含什么数据。

如你所见,有几个结构是这个结构的一部分。请看上面输出的右边。您将注意到右侧的数据类型名称HWND_和tagPOINT。这些都是结构。好消息是dt将递归地工作,并将在当前结构下转储结构。您只需发出DT–r。您可以通过在–r后面附加一个数字来指定深度。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
干货:如何一分钟解决Windows 10崩溃问题
通往WinDbg的捷径(二)
WinDbg入门教程
windbg使用教程(调试异常及死锁等)
使用WinDbg调试程序
Windows系统默认调试器设置
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服