Windbg ======================================== 命令行启动参数 ---------------------------------------- - ``g`` 忽视第一个debug断点 - ``p `` attach到pid为的程序 调试命令 ---------------------------------------- - 单步调试 - ``F11`` 单步,遇到函数跟进 (Step Into) - ``F10`` 单步,遇到函数跳过 (Step Over) - ``Shift + F11`` 跳出当前函数 (Step Out) - 执行到指定位置 - ``g [地址|函数名]`` 执行到指定位置 - ``gh [地址|函数名]`` 执行到指定位置,如遇到异常则中断 - ``gn [地址|函数名]`` 执行到指定位置,如遇到异常则忽略 - 断点 - ``Ctrl+Break`` 中断当前运行 - ``bl`` 列出已设置断点 - ``be [断点ID]`` 激活断点 - ``bd [断点ID]`` 禁用断点 - ``bc [断点ID]`` 清除断点 - ``bp [地址|函数名]`` 设置断点 - 数据展示 - ``d [地址]`` 显示内存数据 - ``db [地址]`` 按字节显示内存数据 - ``dd [地址]`` 按双字节显示内存数据 - 数据编辑 - ``e [地址] [数据]`` 修改任意内存地址的值 - 栈的显示 - ``k [x]`` 打印调用栈,x为需要回溯的栈帧数 - ``kb [x]`` 打印调用栈,并额外显示3个传递给函数的参数 - 模块显示 - ``lm`` 列出已经读入的所有模块 - ``lmvm [name]`` 查看模块的详细信息 - ``x`` 查找符号的二进制地址 - 反汇编功能 - ``u`` 反汇编当前执行的后几条指令并显示 - ``u [起始地址]`` 从指定的地址开始反汇编 - ``u [起始地址] [终止地址]`` 反汇编指定区间的汇编代码 - 重载 `.reload` - 帮助 `.help` - 清屏 `.cls` - 开启DML帮助 `.prefer_dml 1` - 设置符号地址 - `.sympath ` - `.sympath+ srv**http://msdl.microsoft.com/download/symbols` - 进程信息 - `.tlist` - `!process` 显示调试器当前运行进程信息 - `!process 0` 显示进程列表 - `!process ` 显示进程信息 - `!peb
` 查看Process Enviroment Block - 线程信息 - `~` 显示线程信息 - `~ ` 切换 - `!teb
` 查看TEB信息 - `.ttime` 查看线程时间 - 异常信息 - `.exr` - `.exr -1` 约等于 `.lastevent` - `.bugcheck` 显示当前bug check的详细信息,用于调试crash - `!analyze` 分析最近的异常事件 - 错误信息 - `!error ` 获取错误码为eid的Win32错误信息 - `!gle` get last error