查看kb的輸出,此線程正在等待某個事件。現在這個方法的第一個參數是它等待的句柄的數量,但你可以在輸出中得到值爲0024e154。我通常會看到類似2,3,4等數字。任何想法是什麼意思?WaitForMultipleObjectsEx中的句柄數奇怪
ChildEBP RetAddr Args to Child
0024e1a0 75c70208 0024e154 0024e1c8 00000000 kernel32!WaitForMultipleObjectsEx+0x11d
查看kb的輸出,此線程正在等待某個事件。現在這個方法的第一個參數是它等待的句柄的數量,但你可以在輸出中得到值爲0024e154。我通常會看到類似2,3,4等數字。任何想法是什麼意思?WaitForMultipleObjectsEx中的句柄數奇怪
ChildEBP RetAddr Args to Child
0024e1a0 75c70208 0024e154 0024e1c8 00000000 kernel32!WaitForMultipleObjectsEx+0x11d
調用堆棧看起來不可靠。幾個問題:
如果加載了正確的符號,最好的辦法是查看原始堆棧跟蹤。你可以通過確定堆棧開始和結束來做到這一點。這可以用
!TEB確定
查找ExceptionBase和ExceptionLimit輸出,然後轉儲與
DPS原料堆開始結束
和分析堆棧
+ 0x11d從WaitForMultipleObjectsEx偏移。 Windbg取最近的符號,當你看到如此大的偏移時,通常意味着你沒有好的符號。堆棧幀可能根本不在WaitForMultipleObjectsEx中,因此這些參數似乎是無意義的。 做一個
.symfix
.reload
再次看你的堆棧之前。 如果您看到:
WARNING: Frame IP not in any known module. Following frames may be wrong.
您不能相信輸出。
+ 0x11d,假設你正在尋找一個可靠的調用堆棧,這太過分了。沒有提到Windows版本,無法檢查。 –
這裏+ 0x11d表示什麼?該進程在32位Windows Vista上運行 –