sunpongber

WinDbg调试常用命令

列出已加载的模块:lm

设置符号路径:.sympath+ C:\Visual_Studio_2019\OEMDriver_oemui_1.0

启用和关闭详细符号加载信息:!sym noisy!sym quiet

告知 WinDbg 执行初始搜索以查找和加载符号文件:.reload /f OEMUI.dll=7fff4e070000,2c000

检查结果:lmvm OEMUI

查看导出表:!dh OEMUI -e

查看所有导出函数:x OEMUI!*

搜索标准导出函数:x OEMUI!*DllMain*

检查资源分配和释放:x OEMUI!*Alloc*x OEMUI!*Free*

查看函数源码 (如果 PDB 包含源码信息):.lines

设置源码断点:

bp `devmode.cpp:28`

函数断点设置:bp OEMUI!DllMain

临时断点 (只命中一次):bp /1 OEMUI!DllMain

查看局部变量:dv /t /v

查看调用参数:dv /i /t

启用异常捕获:

sxe -c "kb; .echo *** EXCEPTION CAUGHT ***; dv /t /v" av

设置打印驱动专用事件:

!gflag +soe  # 启用堆错误报告

开启详细日志:

!dbgprint -c OEMUI*  # 捕获驱动日志

调用栈分析:当断点触发时,始终检查:

k 20  # 完整调用栈
lmvm localspl  # 检查打印后台处理程序
!teb  # 检查线程环境

如果调试速度慢:

.prefer_dml 1  # 启用 DML 链接
.nvld off      # 禁用 NV 驱动加载

原始资料地址:
使用 WinDbg 和调试器命令
Windows 调试入门
如有侵权联系删除 仅供学习交流使用