windbg常用命令】的更多相关文章

windbg 常用命令详解 https://blog.csdn.net/chenyujing1234/article/details/7743460 vertarget 显示当前进程的大致信息 lmvm 可以查看任意一个dll的详细信息例如:我们查看cyusb.sys的信息 lmf 列出当前进程中加载的所有dll文件和对应的路径 r 命令显示和修改寄存器上的值 d 命令显示esp寄存器指向的内存 ~     命令是用来切换目标线程 0:018> ~ 可以显示线程的信息0:018> ~0s  …
SRV*C:\Symbols*http://msdl.microsoft.com/download/symbols CPU常用命令 载入sos.dll  执行.load C:\Windows\Microsoft.NET\Framework64\v4.0.30319\SOS.DLL!threadpool  查看当前CPU状况 线程数等等!runaway  查看那几个线程使用的高 建议多抓几个dump 然后确定到底是哪个线程~20s 切换到线程!clrstack 看看这个线程再干嘛 执行那些方法!c…
= kd> ln 8046e100 (8046e100) nt!KeServiceDescriptorTableShadow | (8046e140) nt!MmSectionExtendResourceExact matches: nt!KeServiceDescriptorTableShadow = 31.!gle 查看LastError值 32.指定进制的形式0x/0n/0t/y 分别表示 16/10/8/2进制 ? 0x12345678+0n10 Evaluate expression:…
dg (Display Selector) dg命令显示指定选择器的段描述符. dg FirstSelector [LastSelector] 参数: FirstSelector指定要显示的第一个选择器的十六进制选择器值. LastSelector指定要显示的最后一个选择器的十六进制选择器值.如果省略,则只显示一个选择器. 此命令最多只能显示256个选择器.常用选择器值为: ID 十进制 十六进制 KGDT_NULL 0 0x00 KGDT_R0_CODE 8 0x08 KGDT_R0_DATA…
启动, 附加进程, 执行和退出(Starting, Attaching, Executing and Exiting) =======================   Start -> All Programs -> Debugging Tools for Windows -> WinDBG 启动 F6 attach to process 附加到进程 Ctrl-Break interrupt debugee 中断正在被debug的程序 .detach detach from a pr…
简介 这个!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"} {"…
.write_cmd_hist 简介 .write_cmd_hist命令将调试器命令窗口的整个历史记录写入文件. 使用形式 .write_cmd_hist Filename 参数 Filename指定要创建的文件的路径和文件名. 支持环境 此命令仅在 WinDbg 中可用,并能在脚本文件. 模式 用户模式下,内核模式 目标 实时. 崩溃转储 平台 全部…
lsf, lsf- (Load or Unload Source File) lsf和lsf-命令加载或卸载源文件. lsf Filename lsf- Filename 参数: Filename指定要加载或卸载的文件.如果此文件不在从中打开调试器的目录中,则必须包含绝对路径或相对路径.文件名必须遵循Microsoft Windows文件名惯例. lsf命令加载源文件.lsf-命令卸载源文件.可以使用此命令卸载以前使用lsf加载的文件或自动加载的源文件.不能使用lsf-卸载通过windbg的fi…
p (Step) p命令执行单个指令或源代码行,并可选地显示所有寄存器和标志的结果值.当子例程调用或中断发生时,它们被视为单个步骤. 用户模式: [~Thread] p[r] [= StartAddress] [Count] ["Command"] 内核模式: p[r] [= StartAddress] [Count] ["Command"] 参数: Thread指定要继续执行的线程.所有其他线程都被冻结.只能在用户模式下指定线程. r 打开和关闭寄存器和标志的显示…
ba (Break on Access) ba命令设置处理器断点(通常称为数据断点,不太准确).此断点在访问指定内存时触发. 用户模式下 [~Thread] ba[ID] Access Size [Options] [Address [Passes]] ["CommandString"] 内核模式下 ba[ID] Access Size [Options] [Address [Passes]] ["CommandString"] 参数: Thread指定断点应用于的…
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]…
简介 sx*命令控制调试器在正在调试的应用程序中发生异常或发生某些事件时采取的操作. 使用形式 sx sx{e|d|i|n} [-c "Cmd1"] [-c2 "Cmd2"] [-h] {Exception|Event|*} sx- [-c "Cmd1"] [-c2 "Cmd2"] {Exception|Event|*} sxr 参数 -c " Cmd1 " 指定在发生异常或事件时执行的命令. 当处理此异常…
简介 !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 调试模块.…
|(进程状态) 简介 (|) 命令显示指定进程的状态或当前正在调试你的所有进程. 使用形式 | Process 参数 Process 指定要显示的进程. 如果省略此参数,将显示所有正在调试的进程. 支持环境 模式 仅限用户模式 目标 实时. 崩溃转储 平台 全部 备注 只能在用户模式下指定进程.可以在许多命令之前添加进程符号有关后跟命令.除非在启动调试会话时启用了子进程的调试,否则调试器只能使用一个进程.下面的示例演示如何使用此命令.以下命令显示所有进程. 下面的示例显示如何使用此命令. 下面的…
||(系统状态) 简介 双竖线 ( || ) 命令将打印指定的系统或当前正在调试的所有系统的状态. 使用形式 || System 参数 System 指定要显示的系统. 如果省略此参数,将显示正在调试的所有系统. 支持环境 模式 调试多个目标 目标 实时. 崩溃转储 平台 全部 备注 || 命令仅在调试多个目标很有用. 很多,但并非所有的多个目标调试会话涉及多个系统.每个系统列表包括服务器名称和协议详细信息. 系统上运行调试器都会被视为 <本地> .下面的示例显示如何使用此命令. 下面的命令显…
!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…
!dlls 简介 !dlls扩展显示所有加载模块或指定线程或进程正在使用的所有模块的表条目. 使用形式 !dlls [Options][LoaderEntryAddress] !dlls -h 参数 Options 指定输出的级别. 此参数可以是下列值中的任意组合: -f 显示文件标头. -s 显示部分标头. -a 显示完成模块信息. (此选项相当于-f-s.) -c **** ModuleAddress 显示包含的模块ModuleAddress. -i 对显示的初始化顺序进行排序. -l 对显…
!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位于同一目录…
!envvar 简介 !envvar扩展命令显示特定环境变量的值. 使用形式 !envvar Variable 参数 Variable指定显示其值的环境变量.变量不区分大小写. 环境 Windows 2000 不可用 Windows XP 及更高版本 Exts.dll 备注 这个!envvar扩展在用户模式和内核模式下都可以工作.但是,在内核模式下,当您将空闲线程设置为当前进程时,指向进程环境块(PEB)的指针为空,因此失败.在内核模式下!envvar扩展显示目标计算机上的环境变量,如下例所示:…
!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.…
!error 这个!error扩展命令解码并显示有关错误值的信息. !error Value [Flags] 参数: Value指定以下错误代码之一:Win32.Winsock.NTSTATUS.NetAPI Flags如果标志设置为1,则错误代码将作为ntstatus代码读取. DLL Windows 2000 Ext.dll Windows XP 及更高版本 Ext.dll 下面的示例演示如何使用!错误. 0:000> !error 2 Error code: (Win32) 0x2 (2)…
x (Examine Symbols) x命令在所有与指定模式匹配的上下文中显示符号. x [Options] Module!Symbol x [Options] * 参数: Options特定符号搜索选项.您可以使用以下一个或多个选项:/0 只显示每个符号的地址. /1 只显示每个符号的名称. /2 只显示每个符号 (而非数据类型) 的地址和名称. /D 使用调试器标记语言显示输出. /t 如果数据类型已知, 则显示每个符号的数据类型. /v 显示每个符号的符号类型 (本地.全局.参数.函数或…
.frame (Set Local Context) .frame命令指定使用哪个本地上下文(作用域)解释本地变量或显示当前本地上下文. .frame [/c] [/r] [FrameNumber] .frame [/c] [/r] = BasePtr [FrameIncrement] .frame [/c] [/r] = BasePtr StackPtr InstructionPtr 参数: /c将指定的帧设置为当前本地重写上下文.此操作允许用户访问调用堆栈中任何函数的非易失性寄存器. /r显…
.formats (Show Number Formats) .formats命令在当前线程和进程的上下文中计算表达式或符号,并以多种数字格式显示它. .formats expression 参数: expression指定要计算的表达式. 环境: 模式 用户模式下,内核模式 目标 实时. 崩溃转储 平台 全部 计算的表达式以十六进制.十进制.八进制和二进制格式以及单精度和双精度浮点格式显示.当字节对应于标准的ascii字符时,也会显示ascii字符格式.如果表达式在允许的范围内,则它也被解释为…