下载
https://learn.microsoft.com/en-us/windows-hardware/drivers/debugger/debugger-download-tools
安装,打开exe 我选择了下载
打开X64 Debuggers And Tools-x64_en-us.msi 要安装对应系统位数 不然打不开
安装完成后没有反应。还以为我弄错了呢,开始菜单有,如果找不到可以从右侧路径找。
使用方法
配置pdb与源码
dump分析
分析dump,可以将dump直接拖进来,也可以如下打开
输入!analyze -v
用于分析查看数据
输入~*kbn
查看所有的线程
按Ctrl+F查找KERNELBASE!UnhandledExceptionFilter类似未处理的异常
输入dd
显示当前内存地址,dd 参数:显示参数处的内存
复制第三个参数00b8d9d0 输入 dd 00b8d9d0
输入.ecxr
查看当前异常的上下文信息、和部分寄存器信息
输入.cxr
切换异常帧上下文
输入 .exr 00b8db60
(第二个参数)查看上下文 .cxr 00b8dbb0
(第三个参数)
输入kb
显示堆栈崩溃,具体到行
查看堆栈,打开call stack,可以直接查看堆栈
在堆栈里面双击崩溃位置,跳转到代码
打开local,可查看变量值
查看崩溃前的数据
输入lmvm 模块名
查看对应的pdb,lmvm TPClipManageU
输入.reload /i 库名
重新加载对应的库,.reload /i TPClipManageU.dll
输入kv.bugcheck
可以显示出错的代码
输入r
可以显示系统崩溃时的寄存器,和最后的命令状态
输入R
查看寄存器
输入Kv
查看栈回溯
输入~0s
查看主线程
输入.exr
显示异常信息
调试程序
由于某些情况下,pdb与现在版本不一致(vs中修改了些的代码,或者vs抽风)vs无法附加进程,但是bug又是偶现的,好不容易出现一次又不能破坏现场。就可以直接使用windbg直接附加到进程进行调试程序。
找到需要添加的进程
此时程序会暂停
打开需要加载的cpp
选中你需要调试的代码F9添加断点,跟vs一致。如果F9没成功需要点击那个暂停按钮,成功断点位置会变红色,F10逐步跟进,会变成蓝色
按F5或者右键菜单栏go继续运行,或者输入g