Dump分析日记2

步骤 命令 / 操作 场景与目的 关键回显 / 判断标准
0 windbg -z IT.Store.dll.31676.dmp 打开 dump 文件 提示 User Mini Dump File with Full Memory 即 OK
1 .symfix + .reload 自动设置微软公共符号服务器并拉取符号 末尾出现 Symbols downloaded successfully 无红字
2 .sympath 复查符号路径是否已指向 cache*;SRV*https://msdl.microsoft.com/download/symbols 确认后续栈、CLR 数据不会缺符号
3 !analyze -v 自动初步诊断:异常代码、故障模块、Bucket-ID 关键行 FAILURE_BUCKET_ID: CLR_EXCEPTION_80070002_IT.Store.dll!unknown_function
4 .exr -1 打印最后一条异常记录(OS 视角) ExceptionCode: e0434352 (CLR exception) Parameter[0]: 80070002 即文件不存在
5 .loadby sos clr 加载与运行时同版本的 SOS,后续所有托管命令前提 无报错即成功;若多 CLR 版本需 .chain 确认
6 !threads 列出托管线程,确认哪几号线程是托管线程(ThreadOBJ 非 0) 只有 0 号(崩溃线程)与 5 号(调试器辅助)是托管,其余为后台本地线程
7 !pe 查看当前托管线程正在抛出的 Exception 对象 得到地址 00000293842f3158 + 类型 FileNotFoundException
8 ~* e !clrstack 一次性扫所有线程托管栈,快速锁定哪一线程用户代码正在跑 仅线程 0 有栈帧,但已崩坏(GetFrameContext failed: 1
9 !dumpheap -type Exception -stat 堆上异常对象统计,验证只存在 1 个 FileNotFoundException !pe 地址一致,排除其他异常干扰
10 !DumpObj /d <Exception addr> → 取 _fileName 字段 看 CLR 到底想加载哪个程序集 字符串 = PresentationFramework, Version=6.0.2.0...
11 !DumpObj /d <_fusionLog addr> 取 Fusion 绑定日志(若注册表开启则能看到完整路径) 本例日志被关闭,仅提示 EnableLog=1不影响后续证据
12 lm 最后一锤——列出加载模块 首行 IT_Store 映像路径为 ...\IT.Store.dll进程基目录 = .dll 文件夹
posted @ 2026-01-19 23:52  孤沉  阅读(2)  评论(0)    收藏  举报