WinDbg常用命令系列---!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 ]
!analyze -show BugCheckCode [BugParameters]
参数:
- -v
显示详细输出。 - -f
生成!analyze异常输出。即使调试器未检测到异常,也可以使用此参数查看异常分析。
- -hang
生成!analyze -hang的应用程序输出。当目标遇到错误检查或异常,但分析应用程序挂起的原因与您的问题更相关时,请使用此参数。在内核模式下,!analyze-hang调查系统持有的锁,然后扫描dpc队列链。在用户模式下,!analyze-hang分析线程堆栈,以确定是否有任何线程正在阻塞其他线程。在以用户模式运行此扩展之前,请考虑将当前线程更改为您认为已停止响应的线程(即挂起),因为异常可能已将当前线程更改为其他线程。 - -D BucketID
仅显示与指定bucketid相关的项。 - -show BugCheckCode [BugParameters]
显示有关由错误检查代码指定的错误检查的信息。BugParameters最多指定四个由空格分隔的错误检查参数。这些参数使您能够进一步优化搜索。 - -c
当调试器遇到已知问题时继续执行。如果问题不是“已知”问题,则调试器仍会被分解到目标中。 可以使用 -c具有以下子参数选项。 这些子参数配置已知问题的列表。 它们不会导致进行单独执行。 直到你运行 !analyze -c 加载至少一次 ! 分析 -c没有任何影响。
-load KnownIssuesFile加载指定的已知问题文件。knownissuesfile指定此文件的路径和文件名。此文件必须为XML格式。您可以在调试器安装目录的sdk\samples\analyze_continue子目录中找到一个示例文件。(要使Windows具有此文件,必须已执行调试工具的完整安装。)known issues file文件中的已知问题列表将用于所有以后的-c命令,直到使用-c-unload或再次使用-c-load(此时新数据将替换旧数据)。
-unload
卸载当前已知问题列表。
-help
在调试器命令窗口中显示此命令的帮助。
此命令对于用户模式异常和内核模式停止错误(即崩溃)的样本进行分析,在用户模式下,显示有关当前异常的信息。在内核模式下,显示有关最新错误检查的信息。如果出现错误检查,显示信息自动生成。
!analyze的使用
调试崩溃的目标计算机或应用程序的第一步是使用!analyze扩展命令。这个扩展执行大量的自动化分析。此分析的结果将显示在调试器命令窗口中。您应该使用-v选项来完全详细地显示数据。
用户模式!analyze -v示例
在本例中,调试器附加到遇到异常的用户模式应用程序
0:000> !analyze -v
*******************************************************************************
* *
* Exception Analysis *
* *
******************************************************************************* Debugger SolutionDb Connection::Open failed 80004005
如果已连接到Internet,调试器将尝试访问由Microsoft维护的故障解决方案数据库。在这种情况下,将显示一条错误消息,指示您的计算机无法访问Internet或网站不工作。
FAULTING_IP:
ntdll!PropertyLengthAsVariant+73
77f97704 cc int 3
FAULTING_IP字段显示发生故障时的指令指针。
EXCEPTION_RECORD: ffffffff -- (.exr ffffffffffffffff)
ExceptionAddress: 77f97704 (ntdll!PropertyLengthAsVariant+0x00000073)
ExceptionCode: 80000003 (Break instruction exception)
ExceptionFlags: 00000000
NumberParameters: 3
Parameter[0]: 00000000
Parameter[1]: 00010101
Parameter[2]: ffffffff
BUGCHECK_STR: 80000003
BUGCHECK_STR字段显示异常代码。这个名字用词不当,术语bug check实际上表示内核模式崩溃。在用户模式调试中,在此情况下将显示异常代码0x80000003。
DEFAULT_BUCKET_ID: APPLICATION_FAULT
DEFAULT_BUCKET_ID字段显示此故障所属的一般故障类别。
PROCESS_NAME: MyApp.exe
PROCESS_NAME字段指定引发异常的进程的名称。
LAST_CONTROL_TRANSFER: from 01050963 to 77f97704
STACK_TEXT:
0006b9dc 01050963 00000000 0006ba04 000603fd ntdll!PropertyLengthAsVariant+0x73
0006b9f0 010509af 00000002 0006ba04 77e1a449 MyApp!FatalErrorBox+0x55 [D:\source_files\MyApp\util.c @ 541]
0006da04 01029f4e 01069850 0000034f 01069828 MyApp!ShowAssert+0x47 [D:\source_files\MyApp\util.c @ 579]
0006db6c 010590c3 000e01ea 0006fee4 0006feec MyApp!SelectColor+0x103 [D:\source_files\MyApp\colors.c @ 849]
0006fe04 77e11d0a 000e01ea 00000111 0000413c MyApp!MainWndProc+0x1322 [D:\source_files\MyApp\MyApp.c @ 1031]
0006fe24 77e11bc8 01057da1 000e01ea 00000111 USER32!UserCallWinProc+0x18
0006feb0 77e172b4 0006fee4 00000001 010518bf USER32!DispatchMessageWorker+0x2d0
0006febc 010518bf 0006fee4 00000000 01057c5d USER32!DispatchMessageA+0xb
0006fec8 01057c5d 0006fee4 77f82b95 77f83920 MyApp!ProcessQCQPMessage+0x3b [D:\source_files\MyApp\util.c @ 2212]
0006ff70 01062cbf 00000001 00683ed8 00682b88 MyApp!main+0x1e6 [D:\source_files\MyApp\MyApp.c @ 263]
0006ffc0 77e9ca90 77f82b95 77f83920 7ffdf000 MyApp!mainCRTStartup+0xff [D:\source_files\MyApp\crtexe.c @ 338]
0006fff0 00000000 01062bc0 00000000 000000c8 KERNEL32!BaseProcessStart+0x3d
FOLLOWUP_IP:
MyApp!FatalErrorBox+55
01050963 5e pop esi FOLLOWUP_NAME: dbg SYMBOL_NAME: MyApp!FatalErrorBox+55 MODULE_NAME: MyApp IMAGE_NAME: MyApp.exe DEBUG_FLR_IMAGE_TIMESTAMP: 383490a9
STACK_COMMAND: .ecxr ; kb
STACK_COMMAND字段显示用于获取堆栈文本的命令。您可以使用此命令重复此堆栈跟踪显示,或更改它以获取相关的堆栈信息。
BUCKET_ID: 80000003_MyApp!FatalErrorBox+55
BUCKET_ID字段显示当前故障所属的特定故障类别。此类别有助于调试器确定要在分析输出中显示的其他信息。
WinDbg常用命令系列---!analyze的更多相关文章
- WinDbg常用命令系列---.cmdtree
.cmdtree 简介 使用形式 .cmdtree cmdfile 参数 cmdfile命令文件,包含多个你需要的命令.必须是一个文本档 使用步骤 1.使用命令创建文本文件test.wl,使用以下示例 ...
- WinDbg常用命令系列---显示段选择器dg、链接列表dl和字符串ds/dS
dg (Display Selector) dg命令显示指定选择器的段描述符. dg FirstSelector [LastSelector] 参数: FirstSelector指定要显示的第一个选择 ...
- WinDbg常用命令系列---!uniqstack
简介 这个!uniqstack扩展扩展显示的所有线程的堆栈的所有当前进程,不包括显示为具有重复项的堆栈中. 使用形式 !uniqstack [ -b | -v | -p ] [ -n ] 参数 -b将 ...
- WinDbg常用命令系列---.write_cmd_hist (写命令历史记录)
.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指定 ...
- WinDbg常用命令系列---单步执行p*
p (Step) p命令执行单个指令或源代码行,并可选地显示所有寄存器和标志的结果值.当子例程调用或中断发生时,它们被视为单个步骤. 用户模式: [~Thread] p[r] [= StartAddr ...
- WinDbg常用命令系列---断点操作b*
ba (Break on Access) ba命令设置处理器断点(通常称为数据断点,不太准确).此断点在访问指定内存时触发. 用户模式下 [~Thread] ba[ID] Access Size [O ...
- WinDbg常用命令系列---查看线程调用栈命令K*简介
Windbg里的K*命令显示给定线程的堆栈帧以及相关信息,对于我们调试时,进行调用栈回溯有很大的帮助. 一.K*命令使用方式 在不同平台上,K*命令的使用组合如下 User-Mode, x86 Pro ...
- WinDbg常用命令系列---sx, sxd, sxe, sxi, sxn, sxr, sx- (设置异常)
简介 sx*命令控制调试器在正在调试的应用程序中发生异常或发生某些事件时采取的操作. 使用形式 sx sx{e|d|i|n} [-c "Cmd1"] [-c2 "Cmd2 ...
随机推荐
- Locust性能测试-参数化批量注册
前言 实现场景:所有并发虚拟用户共享同一份测试数据,并且保证虚拟用户使用的数据不重复. 例如,模拟10用户并发注册账号,总共有100个手机号,要求注册账号不重复,注册完毕后结束测试 准备数据 虚拟用户 ...
- 阿里巴巴 Java 开发手册(四): OOP 规约
. [强制]避免通过一个类的对象引用访问此类的静态变量或静态方法,无谓增加编译器解析成 本,直接用类名来访问即可. 2. [强制]所有的覆写方法,必须加@Override 注解. 说明:getObje ...
- 如何在Mybatis的xml文件调用java类的方法
在mybatis的映射xml文件调用java类的方法:使用的是OGNL表达式,表达式格式为:${@prefix@methodName(传递参数名称)} 1.如下代码所示:方法必须为静态方法:以下我只是 ...
- P2472 [SCOI2007]蜥蜴 (最大流)
题目 P2472 [SCOI2007]蜥蜴 解析 这个题思路比较清晰,本(qi)来(shi)以(jiu)为(shi)无脑建图跑最大流,结果挂了,整了一个小时后重新建图才过的. 建立一个超级源点和一个超 ...
- 2017-07-25 PDO预处理以及防止sql注入
首先来看下不做任何处理的php登录,首先是HTML页面代码 <html> <head><title>用户登录</title></head> ...
- 用jQuery的toggle方法实现元素的左右滑动隐藏
通常情况下给元素加toggle方法通常会是上下滑动隐藏,而有时我们又需要左右滑动隐藏怎么办呢 $(document).ready(function(){ $('#example').click(fun ...
- python day 16: FTP脚本作业用例图,类图,活动图与代码重写
目录 python day 16 1. FTP脚本的用例图 python day 16 2019/10/22 - 2019/10/26 学习资料来自老男孩教育 1. FTP脚本的用例图 老师的讲解视频 ...
- linux下测试某网址或IP端口能否访问
参考这篇 Linux系统下怎么测试端口的连通性 测试端口连通 nc -v -w 1 183.xx.oo.ee -z 82 1linux主机centos操作系统,项目里面需要访问一个URL路径的接口ht ...
- Mysql 库表操作初识
Mysql 库表操作初识 终端登录mysql 这里只演示win下, cmd 终端. 至于怎么在win下, linux, mac安装, 感觉这是一个入门级的百度搜索问题, 安装都搞不定, 确实有点尴尬, ...
- Xshell设置全局配色
1.个人比较喜欢的配色: [XTerm] text=00ff80 cyan(bold)=00ffff text(bold)=e9e9e9 magenta=c000c0 green=80ff00 gre ...