zoukankan      html  css  js  c++  java
  • 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后面附加一个数字来指定深度。

  • 相关阅读:
    光学镜头参数详解(EFL、TTL、BFL、FFL、FBL/FFL、FOV、F/NO、RI、MTF、TVLine、Flare/Ghost)
    三角函数公式
    技术工人的升华
    如何在apache启动的时候不输入ssl的密码
    汉字转拼音问题
    深入PHP内核(1) 引用
    如何把普通的exe服务器程序注册成windows 服务
    如何学习Yii
    横向同步问题
    多态的内幕(C++, C)语言两个版本
  • 原文地址:https://www.cnblogs.com/yilang/p/13617280.html
Copyright © 2011-2022 走看看