WinDBG标准命令
转自:https://www.cnblogs.com/awpatp/archive/2010/01/31/1660475.html
WinDBG的大多数功能是以命令方式工作的, 本系列将介绍WinDBG的三类命令, 标准命令, 元命令和扩展命令.
标准命令
===============
标准命令用来提供适用于所有调试目标的基本调试功能.
所有基本命令都是实现在WinDBG内部的, 执行这些命令时不需要加载任何扩展模块. 大多数标准命令是一两个字符或者符号, 只有version等少数命令除外. 标准命令的第一个字符是不分大小写的, 第二个字符可能区分大小写. 迄今为止, WinDBG调试器共实现了130多条标准命令, 分为60多个系列. 为了便于记忆, 可以根据功能将标准命令归纳为如下18个子类.
控制调试目标执行
| 功能 | 命令 | 描述/助记 | 补充信息 |
| 恢复运行 | g | Go | ~123g, ~#g, ~*g |
| 跟踪执行 | t | Trace | |
| 单步执行 | p | Step | |
| 追踪监视 | wt | Trace and Watch Data |
寄存器相关
| 功能 | 命令 | 描述/助记 | 补充信息 |
| 观察和修改通用寄存器 | r | Registers | |
| 读写MSR寄存器 | rdmsr和wrmsr | Read MSR and Write MSR | |
| 设置寄存器显示掩码 | rm | Register Mask |
IO端口读写
| 功能 | 命令 | 描述/助记 |
| 读IO端口 | ib, iw, id | Input from port (byte, word, double word) |
| 写IO端口 | ob, ow, od | Output to port (byte, word, double word) |
内存控制
| 功能 | 命令 | 描述/助记 | 补充信息 |
| 观察内存 | d系列 | Display Memory | d, da, db, dc, dd, dD, df, dp, dq, du, dw, dW, dyb, dyd |
| 编辑内存 | e系列 | Enter Values | e, ea, eb, ed, eD, ef, ep, eq, eu, ew, eza, ezu |
| 搜索内存 | s | Search Memory | sb, sw, sd, sq, sa, su |
栈
| 功能 | 命令 | 描述/助记 | 补充信息 |
| 观察栈 | k系列 | Display Stack Backtrace | k, kb, kc, kd, kp, kP, kv |
设置维护断点
| 功能 | 命令 | 描述/助记 |
| 软件断点 | bp, bu, bm | Set Breakpoint, Set Unresolved Breakpoint, Set Symbol Breakpoint |
| 硬件断点 | ba | Break on Access |
| 管理断点 | bl | Breakpoint List |
| 清除,禁止,重新启用断点 | bc, bd, be | Breakpoint Clear, Breakpoint Disable, Breakpoint Enable |
线程
| 功能 | 命令 | 描述/助记 |
| 显示控制线程 | ~ | Thread Status |
进程
| 功能 | 命令 | 描述/助记 |
| 显示进程 | | | Process Status |
表达式
| 功能 | 命令 | 描述/助记 |
| 评估表达式 | ? | Evaluate Expression |
| 评估C++表达式 | ?? | Evaluate C++ Expression |
汇编, 反汇编
| 功能 | 命令 | 描述/助记 |
| 汇编 | a | Assemble |
| 反汇编 | u | Unassemble |
段
| 功能 | 命令 | 描述/助记 |
| 显示段的选择子 | dg | Display Selector: shows the segment descriptor for the specified selector |
执行命令文件
| 功能 | 命令 | 描述/助记 | 补充信息 |
| 运行命令脚本文件 | $ | Run Script File | $<, $><, $$<, $$><, $$>a< |
配置命令
| 功能 | 命令 | 描述/助记 | 补充信息 |
| 异常发生或者某事件发生时debuger的处理方式 | sx系列 | Set Exceptions | sx, sxd, sxe, sxi, sxn, sxr, sx- |
| 启用与禁止静默模式 | sq | Set Quiet Mode |
sq |
| 设置内核debugging选项 | so | Set Kernel Debugging Options | |
| 设置符号后缀 | ss | Set Symbol Suffix | ss [a|w|n] |
版本与系统信息
| 功能 | 命令 | 描述/助记 |
| 显示调试器和调试目标版本 | version | Show Debugger Version |
| 显示调试目标所在系统的信息 | vertarget | Show Target Computer Version |
检查符号
| 功能 | 命令 | 描述/助记 |
| 检查符号 | x | Examine Symbols |
源程序
| 功能 | 命令 | 描述/助记 | 补充信息 |
| 控制和显示源程序 | ls系列 | List Source Lines | ls, lsa, lsp, lsc, lsf |
调试符号
| 功能 | 命令 | 描述/助记 |
| 加载调试符号 | ld | Load Symbols |
| 搜索相邻符号 | ln | List Nearest Symbols |
| 显示模块列表 | lm | List Loaded Modules |
调试会话
| 功能 | 命令 | 描述/助记 |
| 结束调试会话 | q | Quit |
| 结束远程调试 | Quit | |
| 结束调试会话并分离调试目标 | qd | Quit and Detach |
在命令编辑框中输入一个问号(?), 可以显示出主要的标准命令和每个命令的简单介绍.
浙公网安备 33010602011771号