文档地址
语法规则
- 大小写可以任意组合
- 一个或多个空格,或
,
来分隔命令参数
符号文件
srv*d:\MyServerSymbols*https://msdl.microsoft.com/download/symbols
命令
;
- 分隔多条命令
enter
- 重复上一条命令
?
- 显示所有命令和运算符列表
? Expression
- 计算给定表达式的值
?? Expression
- 根据C++表达式规则计算并显示值
- 打印指定系统或当前正在调试的所有系统的状态
s
- 命令设置或显示当前的系统编号
- 显示指定进程的状态,或显示当前正在调试的所有进程的状态
s
- 命令将设置或显示当前进程号
~
- 显示指定线程或当前进程中的所有线程的状态
~0s
- 切到0线程
~e
- 为特定线程或目标进程中的所有线程执行一个或多个命令
~Thread e CommandString
~f
- 命令冻结给定线程,导致其停止并等待,直到它被解冻
~u
- 命令 unfreezes 指定线程
~n
- 命令挂起指定线程的执行
~m
- 命令恢复指定线程的执行
~s
- 命令将设置或显示当前线程号
~Thread s
~s
- 命令设置在多处理器系统上调试的处理器
~Processor s
a
- 命令汇编
32
位x86
指令助记键,并将生成的指令代码放入内存
- 命令汇编
ad
- 从别名列表中删除别名
ah
- 控制特定地址的断言处理状态
ahb
:指定地址处的断言失败,则中断调试器ahi
:忽略指定地址处的断言失败ahd
:删除指定地址处的任何断言处理信息Address
:指定正在设置其断言处理状态的指令的地址ahc
:删除当前进程的所有断言处理信息ah
:显示当前断言处理设置
al
- 显示所有当前定义的用户命名别名的列表
as
- 定义一个新别名或重新定义一个别名
as /e Name EnvironmentVariable
:将等效于 value 指定的环境变量的别名设置为/ma
:将等效的别名设置为以 null 结尾的 ASCII 字符串(在 Address 开头)/mu
:将等效的别名设置为以 null 结尾的 Unicode 字符串(从 Address 开始)MARKDOWN_HASH94f4ba733f03230b702f95ed7defa27cMARKDOWN<em>HASH
:将等效于位于地址的 ANSI 字符串结构的别名设置为MARKDOWN_HASHf0252e148cd2d7e877235626219643d6MARKDOWN<em>HASH
:将等效的别名设置为 位于 地址 的 UNICODE 字符串结构/x
:将等效的别名设置为等于64位值的 Expression/f
:设置与 文件 文件内容等效的别名/c
:将等效于command.commandstring
指定的命令输出的别名设置为
ba
- 命令设置一个处理器断点,该断点 (经常称为) 的 数据断点。 当访问指定的内存时,将触发此断点
bc
- 永久地从系统中删除以前设置的断点
bd
- 禁用但不删除,以前设置了断点
be
- 命令还原之前已禁用的一个或多个断点
bl
- 列出有关现有断点的信息
bp
,bu
,bm
- 命令设置一个或多个软件断点。 可以组合位置、条件和选项来设置不同类型的软件断点
/1
:创建 "一步" 断点。 触发此断点后,将从断点列表中删除它/P
:仅 (内核模式) 指定与此断点关联的进程/T
:仅 (内核模式) 指定与此断点关联的线程/c
:仅当调用堆栈深度小于MaxCallStackDepth
时才激活断点/C
:仅当调用堆栈深度大于MinCallStackDepth
时才激活断点/a
:在所有指定位置上设置断点,无论它们是在数据空间中还是在代码空间中/d
:将断点位置转换为地址/(
:在SymbolString
定义的符号字符串中包含参数列表信息/w dx
:基于dx
对象表达式返回的布尔值设置条件断点
br
- 对一个或多个断点进行编号
bs
- 更改遇到指定断点时执行的命令
bsc
- 更改发生断点的条件,或更改在遇到指定的条件断点时执行的命令
c
- 比较两个内存区域中的值
d
,da
,db
,dc
,dd
,dD
,df
,dp
,dq
,du
,dw
- 显示给定范围内内存的内容
dda
,ddp
,ddu
,dpa
,dpp
,dpu
,dqa
,dqp
,dqu
- 将在指定位置显示指针,取消引用该指针,然后以各种格式显示位于结果位置的内存
dds
,dps
,dqs
- 显示给定范围内内存的内容。 此内存假定为符号表中的一系列地址。 还显示相应的符号
dg
- 显示指定选择器的段说明符
dl
- 显示列表 项或单个 列表 _ 项链接列表
ds
,dS
- 显示字符串、ANSI 字符串或 UNICODE 字符串 结构
dt
- 显示有关局部变量、全局变量或数据类型的信息
dtx
- 使用调试器对象模型显示扩展符号类型信息
dv
- 显示当前范围内的所有局部变量的名称和值
dx
- 显示使用
NatVis
扩展模型的c++
表达式
- 显示使用
e
,ea
,eb
,ed
,eD
,ef
,ep
,eq
,eu
,new
,eza
- 在内存中输入指定的值
f
,fp
- 使用重复模式填充指定的内存范围
g
- 开始执行给定的进程或线程。 当命中
BreakAddress
或其他事件导致调试器停止时,执行将在程序结束时停止
- 开始执行给定的进程或线程。 当命中
gc
- 从条件断点恢复执行,其方式与用于命中断点 (单步执行、跟踪或自由执行) 相同
gh
- 将给定线程的异常标记为已处理,并允许线程在导致此异常的指令处重启执行
gn
,gN
- 续执行给定线程,而不会将异常标记为已处理。 这允许应用程序的异常处理程序处理异常
gu
- 导致目标执行到当前函数完成
ib
,iw
,id
- 读取并显示所选端口中的字节、字或双字
j
- 有条件地执行指定的命令之一,具体取决于给定表达式的计算
k
,kb
,kc
,kd
,kp
,kP
,kv
- 显示给定线程的堆栈帧以及相关信息
l+
,l-
- 设置了控制源显示和程序单步执行选项的源行选项
ld
- 为指定的模块加载符号并更新所有模块信息
lm
- 显示指定的已加载模块。 输出包括模块的状态和路径
ln
- 显示给定地址附近或附近的符号
ls
,lsa
- 显示来自当前源文件的一系列行,并提升当前的源行号
lsc
- 显示当前的源文件名和行号
lse
- 为当前源文件打开编辑器
lsf
,lsf-
- 加载或卸载源文件
lsp
- 控制在单步执行或执行代码或使用 ls 和 lsa 命令时显示多少源行
m
- 将内存内容从一个位置复制到另一个位置
n
- 将 (基数) 的默认数字基数设置为指定值或显示当前的基数
ob
,ow
,od
- 向所选端口发送字节、字或双字
p
- 执行单个指令或源行,并选择性地显示所有寄存器和标志的结果值。 当发生子程序调用或中断时,它们将被视为单个步骤。
pa
- 执行程序,直到达到指定的地址,并显示每个步骤
pc
- 在达到调用说明之前,
pc
命令会执行程序
- 在达到调用说明之前,
pct
- 执行程序,直到它到达调用指令或返回指令
ph
- 执行程序,直到达到任意类型的分支指令,包括条件或无条件分支、调用、返回和系统调用
pt
- 执行程序,直到到达返回指令
q
,qq
- 结束调试会话
qd
- 会结束调试会话,并使任何用户模式目标应用程序处于运行状态
r
- 显示或修改寄存器、浮点寄存器、标志、伪寄存器和固定名称的别名
rdmsr
- 从指定的地址读取 (MSR) 值的模型特定寄存器
rm
- 修改或显示注册显示掩码。 此掩码控制 r (寄存器) 命令显示寄存器的方式
s
- 在内存中搜索以查找特定的字节模式
so
- 设置或显示内核调试选项
sq
- 打开或关闭安静模式
ss
- 设置或显示用于数值表达式中的符号匹配的当前后缀值
sx
,sxd
,sxe
,sxi
,sxn
,sx-
- 控制调试器在要调试的应用程序中发生异常或发生某些事件时所执行的操作
t
- 执行单个指令或源行,并选择性地显示所有寄存器和标志的结果值。 当发生子程序调用或中断时,也会跟踪其每个步骤
ta
- 行程序,直到达到指定的地址,并显示每个步骤 (包括) 调用的函数中的步骤
tb
- 在到达分支指令之前,
tb
命令会执行程序
- 在到达分支指令之前,
tc
- 执行程序,直到达到调用指令
tct
- 执行程序,直到它到达 call 指令或返回指令
th
- 执行程序,直到它到达任意类型的分支指令,包括条件或无条件分支、调用、返回和系统调用
tt
- 执行程序,直到到达返回指令
u
- 显示内存中指定程序代码的程序集转换
uf
- 显示内存中指定函数的程序集转换
up
- 显示物理内存中指定程序代码的程序集转换
ur
- 显示指定的16位实模式代码的程序集转换
ux
- 显示基于
X86
的BIOS
代码的指令集
- 显示基于
vercommand
- 显示打开调试器的命令
version
- 显示有关调试器和所有加载的扩展
dll
的版本信息
- 显示有关调试器和所有加载的扩展
vertarget
- 显示目标计算机的 Microsoft Windows 操作系统的当前版本
wrmsr
- 将一个值写入 Model-Specific 将 (MSR) 注册到指定地址
wt
- 通过整个函数运行,然后在函数调用开始时执行此命令时显示统计信息
x
- 显示与指定的模式匹配的所有上下文中的符号
z
- 当给定的条件为 true 时,
z
命令执行命令
- 当给定的条件为 true 时,
!analyze -v
- 自动分析奔溃的详细信息,分析异常奔溃的dump文件
元命令
.abandon
- 结束调试会话,但使目标应用程序处于调试状态。 这会将调试器返回到休眠模式
.allow_exec_cmds
- 控制是否可以使用执行命令
.allow_image_mapping
- 控制是否将映射图像文件
.apply_dbp
- 将数据断点应用于上下文
.asm
- 控制反汇编代码的显示方式
.attach
- 附加到新的目标应用程序
.beep
- 在计算机扬声器上发出噪音
.bpcmds
- 显示用于设置每个当前断点的命令
.bpsync
- 当线程到达断点时,
bpsync
命令将冻结所有其他线程,直至断点应用到的线程通过该断点
- 当线程到达断点时,
.breakin
- 从用户模式调试切换到内核模式调试。 当你从内核调试器控制用户模式调试器时,此命令特别有用
.browse
- 在新的 命令浏览器窗口中显示指定命令的输出
.bugcheck
- 显示目标计算机上 bug 检查中的数据
.cache
- 设置用于保存从目标获取的数据的缓存大小。 还设置了一些缓存和内存选项
.call
- 导致目标进程执行某个函数
.chain
- 按默认搜索顺序列出所有已加载的调试器扩展
.childdbg
- 控制子进程的调试
.clients
- 列出当前连接到调试会话的所有调试客户端
.closehandle
- 关闭目标应用程序拥有的句柄
.cls
- 清除调试器命令窗口显示
.context
- 指定进程的哪个页面目录将用于用户模式地址上下文,或显示当前用户模式地址上下文
.copysym
- 当前符号文件复制到指定的目录
.cordll
- 控制托管代码调试和 (CLR) Microsoft .NET 公共语言运行时
.crash
- 会导致目标计算机发出 bug 检查
.create
- 创建新的目标应用程序
.createdir
- 控制启动目录并处理调试器创建的任何进程的继承
.cxr
- 显示保存在指定地址的上下文记录。 它还设置注册上下文
.dbgdbg
- 启动 CDB 的新实例;此新调试器使用当前调试器作为其目标
.detach
- 结束调试会话,但使任何用户模式目标应用程序都处于运行状态
.dml_flow
- 显示一个反汇编代码块,并提供可用于构造代码流关系图的链接
.dml_start
- 显示的输出可作为使用支持 调试器标记语言 (dml) 的命令浏览开始的起点
.dump
- 创建用户模式或内核模式故障转储文件
.dumpcab
- 创建包含当前转储文件的 CAB 文件
.dvalloc
- 使 Windows 向目标进程分配额外的内存
dvfree
- 释放目标进程所拥有的内存分配
.echo
- 显示注释字符串
.echocpunum
- 调试多处理器目标计算机时,
echocpunum
命令将打开或关闭处理器编号的显示
- 调试多处理器目标计算机时,
.echotime
- 显示当前时间
.echotimestamps
- 打开或关闭时间戳信息的显示
.ecxr
- 显示与当前异常关联的上下文记录
.effmach
- 显示或更改调试器使用的处理器模式
.enable_long_status
- 指定调试器是以十进制格式还是在默认基数中显示长整数
.enable_unicode
- 指定调试器是否将 USHORT 指针和数组显示为 unicode 字符串
.endpsrv
- 使当前进程服务器或 KD 连接服务器关闭
.endsrv
- 使调试器取消活动的调试服务器
.enumtag
- 显示辅助 bug 检查回调数据和所有数据标记
.event_code
- 显示当前的事件说明
.eventlog
- 显示最近的 Microsoft Win32 调试事件,如模块加载、进程创建和终止以及线程创建和终止
.exepath
- 将设置或显示可执行文件搜索路径
.expr
- 指定默认表达式计算器
.exptr
- 显示异常 _ 指针结构
.exr
- 显示异常记录的内容
.excr
- 显示与当前异常关联的上下文记录
.extmatch
- 显示当前加载的扩展 dll (与指定的模式匹配)导出的扩展命令
.extpath
- 设置或显示扩展 DLL 搜索路径
.f+
,.f-
- 将帧索引转移到当前堆栈中的下一帧。 F- command 将帧索引转移到当前堆栈的上一个帧中
.fiber
- 指定要为纤程上下文使用哪种纤程
.fiximports
- 验证并更正目标模块的所有静态导入链接
.flash_on_break
- 指定当最小化 windbg 和目标中断时,windbg 任务栏项是否闪烁
.fnent
- 显示有关指定函数的函数表项的信息
.fnret
- 显示有关函数的返回值的信息
.force_radix_output
- 指定是以十进制格式还是在默认基数中显示整数
.force_tb
- 强制处理器在启动过程的初期跟踪分支
.formats
- 在当前线程的上下文中计算表达式或符号,并处理并将其显示为多个数字格式
.fpo
- 控制框架指针省略 (fpo) 重写
.frame
- 指定哪个本地上下文 (范围) 用于解释局部变量或显示当前的本地上下文
.help
- 显示所有元命令的列表
.hh
- 打开 Windows 调试工具文档
.hideinjectedcode
- 打开或关闭插入的代码的隐藏
holdmem
- 保存内存范围,并将其与其他内存范围进行比较
.idle_cmd
- 命令设置 空闲命令
常规扩展命令
!acl
- 扩展格式并显示访问控制列表 (acl) 的内容
!address
- 显示了有关目标进程或目标计算机使用的内存的信息
!analyze
- 扩展显示有关当前异常或 bug 检查的信息
!asd
- 扩展在从指定地址开始的数据缓存中显示指定数量的失败分析条目
!atom
- 为指定的 atom 或当前进程的所有原子显示格式化的 atom 表
本文为原创文章,版权归Aet所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ Windows 核心编程 _ 内核对象:同步异步设备IO08/24
- ♥ Windows API11/11
- ♥ Cef:沙盒、CefApp、CefClient02/29
- ♥ Soui七06/02
- ♥ Windows调试相关简记12/13
- ♥ COM组件_101/31