2010-09-10 35 views
1

我遇到了「一般保護異常」的未處理異常。程序運行但沒有輸出。C++:如何調試「一般保護例外」?

我想知道我可以做些什麼來調試這種異常?

謝謝

+0

是哪個平臺? Linux,Windows或其他東西? – 2010-09-10 17:54:07

回答

2

是的,如果你不能趕上使用調試器在Visual C++的問題(專業版或快遞),如果它確實使整個系統崩潰,看看:

http://support.microsoft.com/kb/315263

如果不會導致系統崩潰,並且調試器是沒有得到你在那裏發生的時候,你可以嘗試使用的OutputDebugString和WinDbg的:

http://msdn.microsoft.com/en-us/library/aa363362%28VS.85%29.aspx

http://www.microsoft.com/whdc/devtools/debugging/default.mspx

通過使用兩個輸出字符串進行二進制搜索以查看崩潰發生的位置,從而縮小哪一行導致問題。最終你應該看到你的第一行打印和第二行不打印,然後你知道兩個輸出字符串之間可能發生了問題。然後,您可以將它們按邏輯方式移動(以二進制搜索模式),直到它們圍繞一行代碼並且只打印第一行代碼,然後您可以懷疑它們之間的實際代碼行。

0

嘗試使用msft的調試診斷。這將運行一個服務來監視你的應用程序,並在你得到gpe時創建一個userdump。然後,您可以將轉儲加載到windbg中,並查看發生異常時發生了什麼。