Một trong các chương trình của tôi bị lỗi định kỳ, nhưng tôi không biết tại sao. Tôi đang chạy nó trong chế độ gỡ lỗi, nhưng không có gì bật lên. Chương trình chỉ đột nhiên thoát. Tôi đã có lỗi khác mà ném một ngoại lệ ... nhưng không phải cái này. Có một cách kỳ diệu để bắt nó hay gì đó không?Làm thế nào để gỡ lỗi một chương trình khi nó treo w/out ngoại lệ?
Trả lời
Có lẽ bạn đang chạy nó từ bên trong Visual Studio và vì lý do nào đó, nó không dừng lại trong trình gỡ lỗi với ngoại lệ không bắt buộc, trong trường hợp đó bạn có thể thử bắt gặp sự cố từ bên ngoài Visual Studio. Xem câu trả lời của tôi tại System.AccessViolationException from unmanaged code?, cụ thể là how to capture a crash dump.
Nếu nó chỉ gặp sự cố định kỳ, nhưng trong một khoảng thời gian hợp lý, hãy bắt đầu với Sysinternals procdump. Bắt đầu thực thi của bạn từ Visual Studio bên ngoài, sau đó chạy:
procdump -e <YourExecutableNameOrPid>
và chờ cho nó để thu hoạch một đổ sụp đổ - giả sử nó thoát do một ngoại lệ unhandled - sau đó tải đổ sụp đổ vào VS 2010 hoặc WinDbg.
Chương trình chỉ đột nhiên thoát
chắc chắn kiểm tra mã của bạn, hoặc một trong các libs bạn sử dụng, không gọi exit() (yeah có vẻ quá đơn giản, nhưng chúng ta giờ một lần bị mất truy tìm các chương trình ngẫu nhiên tắt máy quay lại các lệnh exit() ..). Nếu vậy, hãy đặt điểm ngắt tại đó hoặc thay đổi để ném(), sau đó chạy lại. Nếu không, câu trả lời của Sean có vẻ hợp pháp.
Chúng tôi đã có vấn đề chính xác này một lần và nó đã cho chúng ta lứa tuổi để tìm ra. Nó đáng để kiểm tra. –
Ngoài ra, bạn nên đặt điểm ngắt hoặc một số câu lệnh tường trình làm dòng cuối cùng trong main()/winmain(). Có thể chương trình chấm dứt "bình thường" do đó một cách bất ngờ. –
@Red: Đó là một ứng dụng GUI WPF ... tất cả các mã trong các sự kiện, tôi không nghĩ rằng nó sẽ bao giờ đạt đến kết thúc. @stijn: Khá chắc chắn tôi đã không viết bất kỳ cuộc gọi thoát nào, nhưng tôi sẽ kiểm tra lại. – mpen
Bạn có thể tìm thêm đề xuất tại bài đăng tương tự sau đây: Third-party dll crashes program with no exception thrown.
- 1. Chương trình bị lỗi với 0xC000000D và không có ngoại lệ - làm cách nào để gỡ lỗi chương trình?
- 2. Làm cách nào để xem ngoại lệ khi gỡ lỗi?
- 3. Làm thế nào để gỡ lỗi các chương trình WCF
- 4. Django ngoại lệ bugging tôi, không biết làm thế nào để gỡ lỗi nó
- 5. Làm thế nào để làm cho trình gỡ lỗi Valgrind bước qua một chương trình
- 6. Eclipse-CDT: Làm thế nào để cấu hình trình gỡ lỗi dừng lại trên một ngoại lệ?
- 7. Làm thế nào để theo dõi một chương trình gỡ lỗi trong OCaml?
- 8. Làm cách nào để xử lý các ngoại lệ trong Công việc bằng trình gỡ lỗi?
- 9. Làm thế nào để gỡ lỗi/thực hiện một chương trình Ocaml từng bước?
- 10. Làm thế nào để thoát gdb nếu chương trình thành công, ngắt nếu chương trình bị treo?
- 11. Làm cách nào để đặt chương trình ngoại lệ proxy trong chương trình?
- 12. Gỡ lỗi ngoại lệ trong XCode 4
- 13. Làm cách nào để buộc ngoại lệ trong khi gỡ lỗi trong Visual Studio?
- 14. Gỡ lỗi Chương trình XQuery
- 15. Làm cách nào để sử dụng trình gỡ lỗi gdb MinGW để gỡ lỗi chương trình C++ trong Windows?
- 16. Làm thế nào để gỡ lỗi một StackOverflowException trong .NET
- 17. Chương trình bị treo sau khi gọi Dispose()
- 18. Vô hiệu hoá gói ngoại lệ WPF để gỡ lỗi
- 19. Làm thế nào để nhảy trở lại dòng mã đã ném ngoại lệ trong trình gỡ lỗi Visual Studio 2010?
- 20. Làm thế nào để tạo minidump cho quá trình của tôi khi nó bị treo?
- 21. Làm thế nào để bắt lỗi/ngoại lệ trong R?
- 22. Làm thế nào để gỡ lỗi chương trình với bộ xử lý tín hiệu cho SIGSEGV
- 23. Ứng dụng bị treo khi Crashlytics bắt được ngoại lệ
- 24. Gỡ lỗi chương trình python trong emacs
- 25. Khi gỡ lỗi một ứng dụng ASP.NET, Làm thế nào để kết thúc phiên gỡ lỗi khi Firefox đóng?
- 26. stack overflow ngoại lệ trong chương trình ngớ ngẩn
- 27. Làm thế nào để tiếp tục thực hiện chương trình ngay cả sau khi ném ngoại lệ?
- 28. nhắn gdb lạ khi gỡ lỗi chương trình C++
- 29. Tại sao trình gỡ lỗi VS2010 lại bị treo?
- 30. trong C# là có một cách, trong trình gỡ lỗi, để ngăn chặn một ngoại lệ từ vi phạm vào trình gỡ lỗi?
bạn sẽ làm gì nếu bạn có AccessViolationException trong ứng dụng .NET 4 thực sự truy cập khối catch bất ngờ? Vâng, điều này thực sự đang xảy ra với tôi ngay bây giờ. Không thể tin được. Lên kế hoạch hỏi một câu hỏi StackOverflow riêng biệt nhưng trước tiên tôi đã đọc câu trả lời này. Bởi vì các ứng dụng không sụp đổ, không có bãi rác sụp đổ để có, phải không? –
@JohnZabroski Tôi sẽ dự phòng gỡ lỗi với WinDbg và SOS [EX]. Xem câu trả lời khác của tôi được liên kết ở trên. –
Cảm ơn, tôi đã mô tả chi tiết vấn đề của tôi ở đây: http://stackoverflow.com/questions/39378849/what-to-do-when-accessviolationexception-in-net-4-app-defies-msdn-documented-be –