从全内存转储查看托管堆栈

时间:2018-08-12 14:12:20

标签: windbg dump sos memory-dump

怀疑我的托管进程在客户端站点造成了BSOD。我收到了完整的内存转储(即:仅包括内核,物理页面)-但仍然无法检查进程的堆栈。

切换到我的流程上下文之后-

.process /p /r <MyProcAddress>

我只能看到-

1: kd> k
 # ChildEBP RetAddr  
00 b56e3b70 81f2aa5d nt!KeBugCheckEx+0x1e
01 b56e3b94 81e7b68d nt!PspCatchCriticalBreak+0x71
02 b56e3bc4 81e6dfd1 nt!PspTerminateAllThreads+0x2d
03 b56e3bf8 8d48159a nt!NtTerminateProcess+0xcd
WARNING: Stack unwind information not available. Following frames may be wrong.
04 b56e3c24 81c845e4 klif+0x7559a
05 b56e3c24 77da6bb4 nt!KiSystemServicePostCall
06 0262f34c 00220065 ntdll!KiFastSystemCallRet
07 0262f390 003e0022 0x220065
08 0262f394 0073003c 0x3e0022
09 0262f398 00730079 0x73003c
0a 0262f39c 006e003a 0x730079
0b 0262f3a0 006d0061 0x6e003a
0c 0262f3a4 00200065 0x6d0061
0d 0262f3a8 00610076 0x200065
0e 0262f3ac 0075006c 0x610076
0f 0262f3b0 003d0065 0x75006c
10 0262f3b4 00770022 0x3d0065
11 0262f3b8 006e0069 0x770022
12 0262f3bc 006f0077 0x6e0069
13 0262f3c0 00640072 0x6f0077
14 0262f3c4 00200022 0x640072

...

这对于托管流程是很自然的。 SOS扩展不适用于内核转储。

我可以做些什么来查看抛出的托管堆栈吗? previously said变得“困难得多”,但希望并非不可能。


PS。 我知道堆栈中存在卡巴斯基驱动程序kilf.sys,这是我个人的怀疑。但是问题是更笼统的-希望有一种方法可以理解我当时的流程。

1 个答案:

答案 0 :(得分:1)

您发布的堆栈不正确
它似乎已被覆盖或是其他一些伪影的结果
有了这样的堆栈详细信息,您将很难解密
一切有用的

转换为英语的可打印范围的堆栈内容如下

Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

00000000  00 3E 00 22 00 22 00 65 00 73 00 3C 00 3E 00 22  .>.".".e.s.<.>."
00000010  00 73 00 79 00 73 00 3C 00 6E 00 3A 00 73 00 79  .s.y.s.<.n.:.s.y
00000020  00 6D 00 61 00 6E 00 3A 00 20 00 65 00 6D 00 61  .m.a.n.:. .e.m.a
00000030  00 61 00 76 00 20 00 65 00 75 00 6C 00 61 00 76  .a.v. .e.u.l.a.v
00000040  00 3D 00 65 00 75 00 6C 00 77 00 22 00 3D 00 65  .=.e.u.l.w.".=.e
00000050  00 6E 00 69 00 77 00 22 00 6F 00 77 00 6E 00 69  .n.i.w.".o.w.n.i
00000060  00 64 00 72 00 6F 00 77 00 20 00 22 00 64 00 72  .d.r.o.w. .".d.r

尝试!analyze -v并查看bsod分析结果是什么