在運行時,當myApp.exe崩潰時,我收到「未處理的Win32異常」,但我怎麼知道發生了哪種異常?哪裏出了問題?未處理的Win32異常
3
A
回答
0
如果它是一個.Net應用程序,您可以嘗試將UnhandledException
事件放入處理程序中。你可以找到更多關於它的信息和一些示例代碼here。
總的來說,這是一個很好的跡象表明你的異常處理被破壞了,所以可能值得通過你的代碼並找到可能拋出的地方,但是在你不處理異常的地方。
0
使用調試器。您可以運行該程序並查看拋出您的應用程序的異常。它可能能夠查明投擲的位置。我沒有使用過VS調試器,但在gdb中,可以使用catch throw
在拋出異常時強制斷點,應該有類似的東西。
2
對於Native C++應用程序,請參閱我之前的回答:Detect/Redirect core dumps (when a software crashes) on Windows用於捕獲未處理的異常(還提供了用於創建崩潰轉儲的代碼,您可以稍後使用它來分析崩潰,如果崩潰發生在開發系統上然後在Visual Studio中(假設你正在使用它,如果不是其他IDE會有類似的話),在Debug/Exceptions中勾選'Win32 Exceptions'的'Thrown'框
1
通常,Windows會給你也有幾個十六進制數字,很可能是異常代碼是0xC0000005
這是Access Violation的代碼,當發生這種情況時,你還會得到三個額外的信息:違規地址,違規地址和違規類型離子(讀,寫或執行)。 Windows不會縮小它的範圍,而且往往也不能。例如,如果你在程序中走過一個數組的末尾,Windows可能不會意識到你甚至遍歷了一個數組。它只是看到「閱讀:好,閱讀:好,閱讀:越界=>頁面錯誤=>訪問違規」。您必須從違規地址(數組迭代代碼)和違規地址(數組後面的超出邊界地址)中找出結果。
相關問題
- 1. 的win32系統未處理的異常
- 2. Win32/C++的關閉異常處理
- 3. 命令行中的「php.exe」中發生未處理的win32異常
- 4. 未處理的異常異常
- 5. Win32「C」未處理的異常在錯誤位置中斷
- 6. 在MyApp.exe中發生未處理的win32異常
- 7. 在MSACCCESS.EXE中發生未處理的win32異常
- 8. 未處理的win32異常發生在httpd.exe中php
- 9. 在應用程序中發生未處理的win32異常
- 10. runMidlet.exe中發生未處理的win32異常
- 11. Win32異常未處理 - 系統找不到指定的文件
- 12. 處理未處理的異常
- 13. 處理未處理的異常
- 14. 處理未處理的異常問題
- 15. 如何處理未處理的異常?
- 16. DRf,處理未處理的異常
- 17. 未處理的異常
- 18. 未處理的異常
- 19. 未處理的異常
- 20. 未處理的異常:system.typeInitializationException
- 21. createTriangleMesh未處理的異常
- 22. 未處理的異常
- 23. 未處理的異常 「System.IndexOutOfRangeException」
- 24. Cyclone.exe - 未處理的異常
- 25. 未處理的異常java.io.iOException
- 26. ArUco - 未處理的異常
- 27. 未處理的異常MSVCRTD.DLL
- 28. 未處理的異常
- 29. 未處理的異常
- 30. msvcr100d.dll未處理的異常
你在用什麼語言?這是.NET嗎? C++? – Oded 2010-07-07 07:29:25