WinDbg的使用

  • 如何将应用程序绑定到Windbg上面。
    1.写注册表文件(.reg)
    Windows Registry Editor Version 5.00

    [HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Image File Execution Options/[Your application] ]
    "Debugger"="C://Program Files//Debugging Tools for Windows (x86)//windbg.exe -g"

    2. 将这个注册表文件导入到注册表。
    NOTE:这样只要这个应用程序已启动,WIndbg就自动启动,只要这个应用程序发生错误。Windbg就立即Debug住,等待开发人员来调试。
  • 如何调试应用程序
    1. 需要.PDB文件。并导入到Windbg里面
    2. 当应用程序debug住时:
    1) K 中断程序的运行,并会列出所有的函数名称
    2)kn 显示所有函数的序号
    3).frame <序号> 转到对应的函数当中
    4)dv 列出这个函数中的所有局部变量。根据这些变量值来查找错误
  • Windbg其他有用的命令
    1) ~*显示所有的线程信息
    2)~<线程号>s 切换到对应的线程
    3)x 显示所有的局部变量
### Windbg 使用教程 #### 一、环境搭建 为了能够顺利使用WinDbg进行调试,需要先安装合适的版本。对于新用户来说,推荐安装WinDbg Preview版,该版本更新频繁且兼容性较好[^2]。 #### 二、基础命令介绍 掌握一些常用的命令有助于快速上手WinDbg: - **启动程序并附加到进程** - 可以通过`File -> Open Executable...`来打开可执行文件(.exe),或者利用快捷键Ctrl+E。 - **继续运行/暂停目标应用程序** - 输入`g`可以让被调试的应用程序继续执行直到遇到断点或者其他异常情况为止;当希望中断正在运行的目标应用时,则可以点击工具栏上的“Break”按钮或将光标置于命令窗口内按组合键Ctrl+Break实现强制停止[^3]。 - **查看调用堆栈信息** - 执行`kv`指令会显示当前线程完整的函数调用链路详情,这对于理解代码流程非常有帮助。 - **反汇编特定区域机器码** - 如果想要了解某段C/C++源码对应的底层汇编码是什么样的形式的话,那么就可以借助于`uf <function_name>`来进行局部范围内的逆向分析操作了。 - **读取内存中的数据值** - 当涉及到具体地址处的数据访问需求时(比如字符串),则可通过`da <address>`的形式获取相应位置存储的内容展示出来给开发者查阅。 - **刷新模块列表** - 若是在动态链接库(DLLs)加载过程中遇到了问题或者是怀疑某些DLL未正常注入至进程中去的时候,不妨试试`.reload`这条语句的作用吧! #### 三、高级特性探索 除了上述提到的基础功能外,WinDbg还提供了许多强大的扩展能力等待着大家深入挖掘,例如生成转储(dump)文件以便离线状态下也能开展有效的故障排查工作等。 ```powershell // 创建小型Dump文件示例 .dump /ma c:\path\to\your\dmpfile.dmp ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值