2011-12-02 20 views
0

查看kb的輸出,此線程正在等待某個事件。現在這個方法的第一個參數是它等待的句柄的數量,但你可以在輸出中得到值爲0024e154。我通常會看到類似2,3,4等數字。任何想法是什麼意思?WaitForMultipleObjectsEx中的句柄數奇怪

ChildEBP RetAddr Args to Child 
0024e1a0 75c70208 0024e154 0024e1c8 00000000 kernel32!WaitForMultipleObjectsEx+0x11d 
+1

+ 0x11d,假設你正在尋找一個可靠的調用堆棧,這太過分了。沒有提到Windows版本,無法檢查。 –

+0

這裏+ 0x11d表示什麼?該進程在32位Windows Vista上運行 –

回答

0

調用堆棧看起來不可靠。幾個問題:

  • 正確的符號已被加載?
  • 如果加載了正確的符號,最好的辦法是查看原始堆棧跟蹤。你可以通過確定堆棧開始和結束來做到這一點。這可以用

    !TEB確定

    查找ExceptionBase和ExceptionLimit輸出,然後轉儲與

    DPS原料堆開始結束

    和分析堆棧

0

+ 0x11d從WaitForMultipleObjectsEx偏移。 Windbg取最近的符號,當你看到如此大的偏移時,通常意味着你沒有好的符號。堆棧幀可能根本不在WaitForMultipleObjectsEx中,因此這些參數似乎是無意義的。 做一個

.symfix 
.reload 

再次看你的堆棧之前。 如果您看到:

WARNING: Frame IP not in any known module. Following frames may be wrong. 

您不能相信輸出。