.exr (Display Exception Record) .exr命令显示异常记录的内容. .exr Address .exr -1 参数: Address指定异常记录的地址.如果指定-1作为地址,调试器将显示最新的异常. 环境: 模式 用户模式下,内核模式 目标 实时. 崩溃转储 平台 全部 .exr命令显示与调试器在目标计算机上遇到的异常相关的信息.显示的信息包括异常地址.异常代码.异常标志和异常参数的变量列表. 通常可以通过使用!pcr扩展命令获取地址. 下面的例子是在dmp文件里的…
~ (Thread Status) 波浪符(~)命令显示指定线程或当前进程中所有线程的状态. ~ Thread 参数: Thread指定要显示的线程.如果省略此参数,将显示所有线程. 环境: 模式 仅限用户模式 目标 实时. 崩溃转储 平台 全部 可以在许多命令之前添加线程符号.下面的示例向您展示如何使用此命令.以下命令显示所有线程状态. 0:067> ~ 0 Id: 2854.2fe8 Suspend: 1 Teb: 00dfc000 Unfrozen 1 Id: 2854.24c8 Susp…
ld (Load Symbols) ld命令加载指定模块的符号并更新所有模块信息. ld ModuleName [/f FileName] 参数: ModuleName指定要加载其符号的模块的名称.modulename可以包含各种通配符和说明符. /f FileName更改为匹配项选择的名称.默认情况下,模块名是匹配的,但使用/f时,文件名是匹配的,而不是模块名.文件名可以包含各种通配符和说明符. 调试器的默认行为是使用延迟符号加载(也称为延迟符号加载).这意味着符号在需要之前不会实际加载. 另…
简介 sx*命令控制调试器在正在调试的应用程序中发生异常或发生某些事件时采取的操作. 使用形式 sx sx{e|d|i|n} [-c "Cmd1"] [-c2 "Cmd2"] [-h] {Exception|Event|*} sx- [-c "Cmd1"] [-c2 "Cmd2"] {Exception|Event|*} sxr 参数 -c " Cmd1 " 指定在发生异常或事件时执行的命令. 当处理此异常…
!exchain 这个!exchain扩展命令显示当前异常处理程序链. !exchain [Options] 参数: Options下列值之一: /c  如果检测到异常,则显示与调试C++ try/catch异常相关的信息. /C  显示与调试C++try/catch异常相关的信息,即使在没有检测到异常的情况下也是如此. /f 显示通过遍历CRT函数表获得的信息,即使未检测到CRT异常处理程序. DLL Windows 2000 Ext.dll Windows XP and later Ext.…
lsf, lsf- (Load or Unload Source File) lsf和lsf-命令加载或卸载源文件. lsf Filename lsf- Filename 参数: Filename指定要加载或卸载的文件.如果此文件不在从中打开调试器的目录中,则必须包含绝对路径或相对路径.文件名必须遵循Microsoft Windows文件名惯例. lsf命令加载源文件.lsf-命令卸载源文件.可以使用此命令卸载以前使用lsf加载的文件或自动加载的源文件.不能使用lsf-卸载通过windbg的fi…
.logopen (Open Log File) .logopen命令将事件和命令的副本从调试器命令窗口发送到新的日志文件. .logopen [Options] [FileName] .logopen /d 参数: Options下列任一选项: /t---将带有当前日期和时间的进程id附加到日志文件名中.此数据插入到文件名之后和文件扩展名之前. /u---以Unicode格式写入日志文件.如果省略此选项,调试器将以ascii(ansi)格式写入日志文件. FileName指定日志文件名.你可以…
ba (Break on Access) ba命令设置处理器断点(通常称为数据断点,不太准确).此断点在访问指定内存时触发. 用户模式下 [~Thread] ba[ID] Access Size [Options] [Address [Passes]] ["CommandString"] 内核模式下 ba[ID] Access Size [Options] [Address [Passes]] ["CommandString"] 参数: Thread指定断点应用于的…
!analyze命令简介 这个!analyze扩展显示有关当前异常或错误检查的信息. 用户模式: !analyze [-v] [-f | -hang] [-D BucketID] !analyze -c [-load KnownIssuesFile | -unload | -help ] 内核模式: !analyze [-v] [-f | -hang] [-D BucketID] !analyze -c [-load KnownIssuesFile | -unload | -help ] !an…
p (Step) p命令执行单个指令或源代码行,并可选地显示所有寄存器和标志的结果值.当子例程调用或中断发生时,它们被视为单个步骤. 用户模式: [~Thread] p[r] [= StartAddress] [Count] ["Command"] 内核模式: p[r] [= StartAddress] [Count] ["Command"] 参数: Thread指定要继续执行的线程.所有其他线程都被冻结.只能在用户模式下指定线程. r 打开和关闭寄存器和标志的显示…
dg (Display Selector) dg命令显示指定选择器的段描述符. dg FirstSelector [LastSelector] 参数: FirstSelector指定要显示的第一个选择器的十六进制选择器值. LastSelector指定要显示的最后一个选择器的十六进制选择器值.如果省略,则只显示一个选择器. 此命令最多只能显示256个选择器.常用选择器值为: ID 十进制 十六进制 KGDT_NULL 0 0x00 KGDT_R0_CODE 8 0x08 KGDT_R0_DATA…
Windbg里的K*命令显示给定线程的堆栈帧以及相关信息,对于我们调试时,进行调用栈回溯有很大的帮助. 一.K*命令使用方式 在不同平台上,K*命令的使用组合如下 User-Mode, x86 Processor [~Thread] k[b|p|P|v] [c] [n] [f] [L] [M] [FrameCount] [~Thread] k[b|p|P|v] [c] [n] [f] [L] [M] = BasePtr [FrameCount] [~Thread] k[b|p|P|v] [c]…
简介 这个!uniqstack扩展扩展显示的所有线程的堆栈的所有当前进程,不包括显示为具有重复项的堆栈中. 使用形式 !uniqstack [ -b | -v | -p ] [ -n ] 参数 -b将导致显示以包括前三个参数传递给每个函数. -v将导致显示以包括帧指针省略 (FPO) 信息. 在基于 x86 的处理器中,还会显示的调用约定信息. -p将导致显示堆栈跟踪中包含每个函数的完整参数. 此列表将包括每个参数的数据类型. 名称和值. 这要求的完整符号信息. -n导致要显示的帧号码. 环境支…
.cmdtree 简介 使用形式 .cmdtree cmdfile 参数 cmdfile命令文件,包含多个你需要的命令.必须是一个文本档 使用步骤 1.使用命令创建文本文件test.wl,使用以下示例作为模板.您可以按所需方式修改{}之间的节: windbg ANSI Command Tree 1.0 title {"Common Commands"} body {"Common Commands"} {"Information"} {"…
|(进程状态) 简介 (|) 命令显示指定进程的状态或当前正在调试你的所有进程. 使用形式 | Process 参数 Process 指定要显示的进程. 如果省略此参数,将显示所有正在调试的进程. 支持环境 模式 仅限用户模式 目标 实时. 崩溃转储 平台 全部 备注 只能在用户模式下指定进程.可以在许多命令之前添加进程符号有关后跟命令.除非在启动调试会话时启用了子进程的调试,否则调试器只能使用一个进程.下面的示例演示如何使用此命令.以下命令显示所有进程. 下面的示例显示如何使用此命令. 下面的…
||(系统状态) 简介 双竖线 ( || ) 命令将打印指定的系统或当前正在调试的所有系统的状态. 使用形式 || System 参数 System 指定要显示的系统. 如果省略此参数,将显示正在调试的所有系统. 支持环境 模式 调试多个目标 目标 实时. 崩溃转储 平台 全部 备注 || 命令仅在调试多个目标很有用. 很多,但并非所有的多个目标调试会话涉及多个系统.每个系统列表包括服务器名称和协议详细信息. 系统上运行调试器都会被视为 <本地> .下面的示例显示如何使用此命令. 下面的命令显…
.write_cmd_hist 简介 .write_cmd_hist命令将调试器命令窗口的整个历史记录写入文件. 使用形式 .write_cmd_hist Filename 参数 Filename指定要创建的文件的路径和文件名. 支持环境 此命令仅在 WinDbg 中可用,并能在脚本文件. 模式 用户模式下,内核模式 目标 实时. 崩溃转储 平台 全部…
!cppexr 简介 !cppexr显示C++异常记录的内容. 使用形式 !cppexr Address 参数 Address指定要显示的C++异常记录的地址. 支持环境 Windows 2000 Ext .dll Windows XP 和更高版本 Ext .dll 备注 ! Cppexr扩展显示与目标遇到的C++异常有关的信息, 其中包括异常代码.异常的地址和异常标志. 此异常必须是 Msvcrt.lib 中定义的C++标准异常之一. 通常可以使用! 分析-v命令获取Address参数.! C…
.load, .loadby (Load Extension DLL) 简介 .load和.loadby命令将新的扩展DLL加载到调试器中. 使用形式 .load DLLName !DLLName.load .loadby DLLName ModuleName 参数 DLLName 指定要加载的调试器扩展DLL.如果使用.load命令,DLLName应包含完整路径.如果使用.loadby命令,DLLName应仅包含文件名. ModuleName 指定与DLL name指定的扩展DLL位于同一目录…
.frame (Set Local Context) .frame命令指定使用哪个本地上下文(作用域)解释本地变量或显示当前本地上下文. .frame [/c] [/r] [FrameNumber] .frame [/c] [/r] = BasePtr [FrameIncrement] .frame [/c] [/r] = BasePtr StackPtr InstructionPtr 参数: /c将指定的帧设置为当前本地重写上下文.此操作允许用户访问调用堆栈中任何函数的非易失性寄存器. /r显…
e, ea, eb, ed, eD, ef, ep, eq, eu, ew, eza (Enter Values) e*命令将您指定的值输入内存.不要将此命令与~e(Thread-Specific Command)限定符混淆. e{b|d|D|f|p|q|w} Address [Values] e{a|u|za|zu} Address "String" e Address [Values] 参数: Address指定输入值的起始地址.调试器将替换地址和每个后续内存位置处的值,直到所有值…
lm (List Loaded Modules) lm命令显示指定的加载模块.输出包括模块的状态和路径. lmOptions [a Address] [m Pattern | M Pattern] 参数: Options以下选项的任意组合:D----使用调试器标记语言显示输出.o---仅显示加载的模块.l---仅显示其符号信息已加载的模块.v---显示详细信息. 显示所包括的符号文件名称. 图像文件名称. 校验和信息. 版本信息. 日期戳,时间戳和是否托管该模块的信息代码 (CLR). 如果相关…
dv (Display Local Variables) dv命令显示当前作用域中所有局部变量的名称和值. dv [Flags] [Pattern] 参数: Flags显示其他信息.可以包括以下任何区分大小写的标志:/f <addr>:允许您指定任意函数地址,以便可以查看任何代码的参数和局部变量.它关闭值显示并暗示/v./f标志必须是最后一个标志.如果字符串被引用,参数筛选模式仍然可以在其后面指定./i:使显示器指定变量的类型:局部.全局.参数.函数或未知./t :使显示包含每个局部变量的数据…
dt (Display Type) dt命令显示有关局部变量.全局变量或数据类型的信息.这可以显示有关简单数据类型以及结构和联合的信息. 用户模式下: dt [-DisplayOpts] [-SearchOpts] [module!]Name [[-SearchOpts] Field] [Address] [-l List] dt [-DisplayOpts] Address [-l List] dt -h 内核模式下: [Processor] dt [-DisplayOpts] [-Searc…
简介 !findstack扩展查找所有包含指定的符号或模块的堆栈.此命令搜索线程调用堆栈中的特定符号,并显示匹配的线程. 使用形式 !findstack Symbol[DisplayLevel] !findstack -? 参数 Symbol 指定符号或模块. DisplayLevel 指定显示内容.这可以是以下任何一个值.默认值为1 0 显示仅包含每个线程的线程 ID符号. 1 显示线程 ID 和包含每个线程的帧符号. 2 将显示包含每个线程的整个线程堆栈符号. -? 在调试器命令窗口中显示此…
.cordll (控制CLR调试) 简介 .cordell命令控制托管代码调试和Microsoft.NET公共语言运行库(CLR). 使用形式 .cordll [Options] 参数 Options使用以下一个或多个以下选项: -l (小写的 L) 加载 CLR 调试模块. -IModule (大写的 i) 指定的名称或要进行调试的 CLR 模块的基址. -u 卸载 CLR 调试模块. -e 启用 CLR 调试. -d 禁用 CLR 调试. -D 禁用 CLR 调试和卸载 CLR 调试模块.…
!teb 简介 !teb扩展显示线程环境块(teb)中信息的格式化视图. 使用形式 !teb [TEB-Address] 参数 TEB-Address 要检查其TEB的线程的十六进制地址.(这不是从线程的内核线程块派生的TEB地址.)如果在用户模式中省略了TEB地址,则使用当前线程的TEB.如果在内核模式下省略,则显示与当前寄存器上下文相对应的TEB. 备注 TEB是Microsoft Windows线程控制结构的用户模式部分.如果!teb扩展没有参数时,在内核模式下会给您一个错误,您应该使用!…
!heap 简介 !heap扩展显示堆使用信息.控制堆管理器中的断点.检测泄漏的堆块.搜索堆块或显示页堆信息.此扩展支持段堆和NT堆.使用!heap没有参数列出所有堆及其类型的堆. 使用形式 !heap [HeapOptions] [ValidationOptions] [Heap] !heap -b [{alloc|realloc|free} [Tag]] [Heap | BreakAddress] !heap -B {alloc|realloc|free} [Heap | BreakAddr…
!htrace 简介 !htrace扩展显示一个或多个句柄的堆栈跟踪信息. 使用形式 用户模式!htrace [Handle [Max_Traces]] !htrace -enable [Max_Traces] !htrace -snapshot !htrace -diff !htrace -disable !htrace -? 内核模式!htrace [Handle [Process [Max_Traces]]] !htrace -? 参数 Handle指定将显示其堆栈跟踪的句柄.如果Hand…
!handle 简介 !handle扩展显示有关目标系统中一个或所有进程拥有的一个或多个句柄的信息. 使用形式 用户模式!handle [Handle [UMFlags [TypeName]]] !handle -? 内核模式!handle [Handle [KMFlags [Process [TypeName]]]] 参数 Handle指定要显示的句柄的索引.如果Handle为-1或省略此参数,调试器将显示与当前进程关联的所有句柄的数据.如果句柄为0,调试器将显示所有句柄的数据. UMFlag…