2009-12-15 38 views
3

我的程序在執行結束時崩潰,甚至無法看到堆棧展開信息。 我只能看到這個「ntdll!kifastsystemcallret」,可以拋出一些燈光嗎?ntdll!kifastsystemcallret

+0

「想不出甚至看到堆棧展開信息」,這意味着...我一直在嘗試使用WinDbg。 – rplusg 2009-12-15 11:50:15

回答

3

你會經常看到這對所有的只是在等待線程 - 一個線程的應該希望有一些有用的堆棧,其餘都可能表現出這一點。嘗試安裝Debugging Tools for Windows並運行windbg中的程序。當碰撞發生時輸入!analyze -v可以對事故的可能原因進行有用的驗屍。

+0

「分析」命令有什麼作用?我的項目經理說windbg是一個「輕量級版本的Visual Studio」(我們使用VS2008),但人們推薦它的事實表明它具有VS沒有的功能。 我可以在VS2008中做相當於'分析'嗎?如果是這樣,有人可以告訴我如何? – 2011-09-14 19:03:13

+0

首先,道歉 - 應該是'!analyze -v'。其次,我建議升級你的項目經理:-) Windbg不是Visual Studio的'輕量級'版本,它是一個低級調試器。你不能編寫代碼或編譯任何東西。它使您能夠訪問關於進程,句柄,鎖等的低級數據,並且具有一些額外的功能,例如'!analyze',它應用了大量啓發式算法以找出發生崩潰的最可能發生的地方,以及經常*如何發生。 Windbg不會花費任何東西,它不會取代VS--你可以一起使用。 – 2011-09-15 08:06:39

0

您可以通過附加windbg嘗試調試和OS符號提供參考。可能會提供一些線索。

-2

kifastsystemcallret內核快速系統調用返回,或從內核函數緊急退出?一些內核調用失敗...

0

你可以提供一個調用堆棧更多的信息,像什麼操作時發生這個特殊的飛機墜毀前正在做。我曾遇到過這樣的崩潰。

這也可能是第一次機會例外。你確定它是一個崩潰?

2

KiFastSystemCallRet意味着線程處於系統調用 - x86 NT系統調用分派的一個不幸的方面是它不會將上下文返回到原始位置,但必須返回到ntdll中的靜態位置,該靜態位置將修復在上下文背景下把你帶回你從哪裏來。粘貼在堆棧,我們可以給你一些更多的提示...

相關問題