windbg使用超详细教程(我是新手,大佬轻虐)
版本0:2018.4.20
以前一直都是使用的vs和和日志文件调试,近来接触到windbg(额外提一句,好多公司要求上面写的windgb~~)
下载,下载官方版本
直接就是下载了 还挺省事
安装,打开exe 我选择了下载
next
next
download 然后等待下载完成
打开X64 Debuggers And Tools-x64_en-us.msi 要安装对应系统位数 不然打不开
安装完成后没有反应。。。。。也是醉了。还以为我弄错了呢 开始菜单有 如果找不到可以从右侧路径找(我的高级打码 嘿嘿)
吃饭去 回来继续
版本1:2019年7月29日
饭吃完了,那下面咱们继续。
版本2:2019年8月25日
由于上次吃完饭,没收拾碗筷,所以又忙活了几天。
首先写一些用过的用法。(本身想着弄个超详细的基本教程的,现在发现貌似没有时间弄)
配置
设置自己的pdb文件路径以及代码路径(后续默认已经设置过自己的路径了)
具体设置没有放图,是因为每个人的路径不一直,放了怕误导。
1.使用dump文件查找崩溃的位置
首先打开dump文件。
输入!analyze -v(原来写的!anaylze -v 感谢尚逸的提醒) 查看数据
输入!anaylze -v 查看数据
发现什么都没有
输入~*kbn 查看所有的线程
然后向上查找KERNELBASE!UnhandledExceptionFilter+0x25a 这个一个 未处理的异常

输入~*kbn 查看所有的线程
复制第三个参数00b8d9d0
输入 dd 00b8d9d0
输入 dd 00b8d9d0
然后输入 .exr 00b8db60(第二个参数)查看上下文 .cxr 00b8dbb0 (第三个参数)
.exr 00b8db60(第二个参数)查看上下文 .cxr 00b8dbb0 (第三个参数)
然后kbn
kbn
然后发现自己熟悉代码
双击崩溃位置,发现跳不过去
打开call stack
打开call stack
双击崩溃的位置
双击崩溃的位置
成功跳转代码
打开local
打开local
查看崩溃前的数据
查看崩溃前的数据
这里就可以找到错误的位置以及出问题的原因了。
2.调试程序,由于某些情况下,pdb与现在版本不一致(vs中修改了些的代码,或者vs抽风)vs无法附加进程,但是bug又是偶现的,好不容易出现一次又不能破坏现场。就可以直接使用windbg直接附加到进程进行调试程序。

此时程序会暂停
打开cpp文件
点击上面的小图标,可以打开调用堆栈等窗口。
选中你需要调试的代码F9添加断点,跟vs一致
添加断点
F5或者输入g 继续运行
可以看到当前运行的数据都可以看到了。
好了先这样,继续吃饭了。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
2018-06-20 Delphi DBGrid记录全选和反选拖动处理
2018-06-20 在DbGrid中,不按下Ctrl,单击鼠标如何实现多选?谢谢