查看kb的输出,此线程正在等待某个事件。现在,此方法的第一个参数是它等待的句柄数,但是在输出中它的值为0024e154。我通常会看到像2,3,4等等的数字。任何想法是什么意思?
ChildEBP RetAddr Args to Child
0024e1a0 75c70208 0024e154 0024e1c8 00000000 kernel32!WaitForMultipleObjectsEx+0x11d
答案 0 :(得分:0)
调用堆栈看起来不可靠。几个问题:
如果加载了正确的符号,最好的方法是查看原始堆栈跟踪。你可以通过确定堆栈的开始和结束来做到这一点。这可以通过
确定!TEB
查找ExceptionBase和ExceptionLimit输出,然后使用
转储原始堆栈dps开始结束
并分析堆栈
答案 1 :(得分:0)
+ 0x11d从WaitForMultipleObjectsEx偏移。 Windbg采用最近的符号,当你看到如此大的偏移量时,通常意味着你没有好的符号。堆栈帧可能根本不在 WaitForMultipleObjectsEx 中,因此参数似乎是无意义的。 做一个
.symfix
.reload
再看一下你的筹码。 如果你看到:
WARNING: Frame IP not in any known module. Following frames may be wrong.
你不能相信输出。