1. by yejinlei
  2. 为什么是WinDbg?
    1. 微软团队用于开发Windows
    2. 比Visual Studio debugger更强大
    3. 通过DLLs扩展功能
    4. Windows操作系统调试引擎的一部分 (dbgeng.dll和dbghelp.dll)
      1. 调试帮助库dbgeng.dll
        1. 进程转储
        2. 堆栈跟踪
        3. 符号处理
        4. 镜像信息
  3. 断点相关
    1. bl //列出所有断点
    2. bc * //删除所有断点 bc # //删除指定断点
    3. bd * //所有断点无效 bd # //指定断点无效
    4. ba w4 addr //内存断点,w代表写,4字节
    5. bu //预设断点
    6. bp `mod!source.c:12` bp mod!myFunc* bp @@c++( MyClass::MyMethod ) ~1 bu kernel32!LoadLibraryExW
  4. 栈相关
    1. .kframes # //设置堆栈深度,默认20
    2. kd # //显示原始堆栈数据和符号信息
    3. kb kp kP kv
    4. kM //切换帧并显示参数和局部变量,等同.frame n;dv
    5. .frame n //切换帧
    6. ~*k //所有线程调用栈 ~0k //显示0线程调用栈
    7. !uniqstack //显示所有线程的调用栈
  5. 变量相关
    1. dv //显示参数和局部变量
    2. dt //显示函数声明
    3. e addr value //修改变量值
    4. dd 地址/变量 //显示地址内容,包括变量
    5. CTRL+ALT+V
  6. 汇编相关
    1. u 地址 //反汇编
    2. uf 地址 //反汇编整个函数
  7. 线程相关
    1. !teb
    2. ~ //显示所有线程状态 ~* //显示所有线程状态及扩展信息 ~0 //显示0线程状态 ~.//显示当前线程状态
    3. ~0s //切换到0线程
    4. !runaway //显示线程运行时间
    5. !gle [-all] //显示错误码,GetLastError
  8. 内存相关
    1. dd
    2. da //字符形式显示内存内容
    3. db //字节方式显示,同时字符
    4. !vadump //显示所有的虚拟内存区域
    5. !vprot addr //显示保护内存状态
  9. 模块相关
    1. lm
  10. 其他
    1. .cls //清屏
  11. 数值相关
    1. n //显示数值进制,默认16 n 10 //设置10进制
    2. 0x //16进制 0n //10进制 0t //8进制 0y //2进制 .formats 10 //按不同制式格式显示10
  12. 堆相关
    1. !heap -p -all
    2. !heap -stat
  13. 临界区相关
    1. !avrf
    2. !cs
    3. !locks
  14. 别名相关