我的程序在執行結束時崩潰,甚至無法看到堆棧展開信息。 我只能看到這個「ntdll!kifastsystemcallret」,可以拋出一些燈光嗎?ntdll!kifastsystemcallret
回答
你會經常看到這對所有的只是在等待線程 - 一個線程的應該希望有一些有用的堆棧,其餘都可能表現出這一點。嘗試安裝Debugging Tools for Windows並運行windbg
中的程序。當碰撞發生時輸入!analyze -v
可以對事故的可能原因進行有用的驗屍。
「分析」命令有什麼作用?我的項目經理說windbg是一個「輕量級版本的Visual Studio」(我們使用VS2008),但人們推薦它的事實表明它具有VS沒有的功能。 我可以在VS2008中做相當於'分析'嗎?如果是這樣,有人可以告訴我如何? – 2011-09-14 19:03:13
首先,道歉 - 應該是'!analyze -v'。其次,我建議升級你的項目經理:-) Windbg不是Visual Studio的'輕量級'版本,它是一個低級調試器。你不能編寫代碼或編譯任何東西。它使您能夠訪問關於進程,句柄,鎖等的低級數據,並且具有一些額外的功能,例如'!analyze',它應用了大量啓發式算法以找出發生崩潰的最可能發生的地方,以及經常*如何發生。 Windbg不會花費任何東西,它不會取代VS--你可以一起使用。 – 2011-09-15 08:06:39
您可以通過附加windbg嘗試調試和OS符號提供參考。可能會提供一些線索。
kifastsystemcallret內核快速系統調用返回,或從內核函數緊急退出?一些內核調用失敗...
你可以提供一個調用堆棧更多的信息,像什麼操作時發生這個特殊的飛機墜毀前正在做。我曾遇到過這樣的崩潰。
這也可能是第一次機會例外。你確定它是一個崩潰?
KiFastSystemCallRet意味着線程處於系統調用 - x86 NT系統調用分派的一個不幸的方面是它不會將上下文返回到原始位置,但必須返回到ntdll中的靜態位置,該靜態位置將修復在上下文背景下把你帶回你從哪裏來。粘貼在堆棧,我們可以給你一些更多的提示...
- 1. 如何使用windbg(ntdll!KiFastSystemCallRet)確定崩潰原因?
- 2. C++性能分析:KiFastSystemCallRet
- 3. 程序錯誤NTDLL RtlQueryPerformanceCounter()
- 4. ntdll中的進程循環!RtlConvertSidToUnicodeString
- 5. 無法從ntdll和kernel32解析某些功能
- 6. 如何將32位NTDLL結構轉換爲64位結構?
- 7. ntdll 0XC0000005的第一次機會例外Windbg
- 8. !堆失敗。 ntdll!_HEAP_ENTRY的無效類型信息
- 9. WinDbg找不到MS符號服務器上的ntdll符號
- 10. C++在ntdll中發現性能問題 - 如何擺脫它?
- 11. 試圖抓取,複製和保護與NTDLL的句柄
- 12. Ollydbg「在ntdll的單步事件 - 按shift + f8傳遞執行....」?
- 13. 我如何刪除WinDbg中的斷點ntdll!DbgBreakPoint + 0x1
- 14. 調用free()在C++中觸發NTDLL!DbgBreakPoint()在調試,但在發佈
- 15. 爲什麼從本地文件夾加載Ntdll會產生異常?
- 16. 堆棧跟蹤中行尾的數字是多少
- 17. 導致此應用凍結的原因是什麼?
- 18. Windows API hooking inc內核和NTDLL。有沒有權威的參考或教學文本?
- 19. 應用程序掛起而freelibrary
- 20. Windbg工作如此緩慢?
- 21. 爲什麼我的線程被某個關鍵部分阻塞而不被任何東西佔用?
- 22. w3wp上的高CPU
- 23. 如何獲取可能導致我的應用程序進入掛起狀態的事件的句柄
- 24. 什麼可能導致「MDL在同一進程列表上被插入兩次」?
- 25. 如何禁用Web服務器中的Visual C++運行時錯誤?
- 26. 可能由於終結器線程故障導致的內存泄漏故障排除
- 27. WinDbg的崩潰轉儲分析,CPU佔用率過高 -
- 28. COM +應用程序死鎖故障排除
- 29. 需要長時間返回的ADsGetObject函數
- 30. 是否可以在windbg調試會話中向公共符號添加缺失符號?
「想不出甚至看到堆棧展開信息」,這意味着...我一直在嘗試使用WinDbg。 – rplusg 2009-12-15 11:50:15