2010-01-09 25 views
7

Tôi có ứng dụng .Net C# đa luồng, nó sử dụng Direct3D 9/10 và XAudio2. (Direct3D được truy cập bởi chỉ có một chủ đề, tương tự cho XAudio2. Direct3D không phải là vấn đề gây ra lỗi là biểu hiện trong cả hai chế độ DX9 hoặc DX10 mà không có bất kỳ thay đổi trong hành vi của nó.)Lỗi ứng dụng mà không có bất kỳ loại ngoại lệ nào

Đôi khi (có một số khu vực cung cấp cho vấn đề này ngẫu nhiên) ứng dụng này sụp đổ một cách khá unspectacular. Ngay cả khi ứng dụng được bắt đầu thông qua studio trực quan với trình gỡ lỗi, nó bị lỗi mà không đưa ra bất kỳ loại ngoại lệ nào. (Nó bắt đầu bằng cách nói "applicationname.svchost.exe bị lỗi, v..v..c .. bạn có muốn gỡ lỗi không?", Nếu tôi nhấn yes, nó sẽ cho tôi biết "bạn không thể gỡ lỗi ứng dụng đã đóng.)

Có Không có cách nào để tìm ra nguyên nhân của vụ tai nạn là gì? Nguyên nhân tôi đã hết ý tưởng, trình gỡ rối không cho tôi bất kỳ thông tin nào cả. Không có ngoại lệ, tôi thậm chí không thể thực hiện một stacktrace hoặc dump. P (Tôi giả sử là một vấn đề đồng bộ hóa (ngay cả suy nghĩ trong khu vực đó tôi chỉ làm công việc tuần tự ...), nhưng tại sao không khởi chạy một ngoại lệ?: |)

Ở những nơi có vấn đề xảy ra tôi dỡ một tải lại một loạt các lớp liên quan đến một cuốn tiểu thuyết (trong một chuỗi chủ đề tuần tự, vì vậy tôi nghi ngờ nó có thể là một vấn đề) và bắt đầu một âm nhạc mới thông qua XAudio2. (BTW, m là gì xem xét ultithreading về XAudio2? Có an toàn khi gọi từ nhiều chủ đề không?)

Cảm ơn sự giúp đỡ.

P.S. Có một phần mềm để đính kèm với tôi để theo dõi tất cả các cuộc gọi và cho tôi biết cuộc gọi cuối cùng trước khi xảy ra sự cố là gì?

+0

Bạn nên đăng chính xác thư bạn nhận được khi chương trình bị lỗi. Tôi nghi ngờ nó thực sự nói "bị rơi." Có thể có một số manh mối hữu ích trong thông báo lỗi. – Jacob

+0

Không có thông báo và không có ngoại lệ được đưa ra bởi trình gỡ rối VS, thông báo là "tên ứng dụng.svchost.exe bị ngừng hoạt động, bạn có muốn gỡ lỗi không?", Nếu tôi nhấn có nó bắt đầu một studio trực quan khác và cho tôi biết "bạn không thể gỡ lỗi một ứng dụng đã đóng " – feal87

Trả lời

4

Bạn nên thử sử dụng Windbg, phân tích sự cố đổ rác sẽ chỉ cho bạn vấn đề, nếu nghi ngờ của bạn là đúng và nó là một vấn đề đồng bộ hóa, nguyên nhân của vấn đề có thể khó phát hiện.

+0

Tôi phát hiện ra vấn đề bằng cách sử dụng Windbg, đó là một số lỗi điên với XAudio2. Cảm ơn! – feal87

2

Bạn đã kiểm tra Nhật ký sự kiện trong Bảng điều khiển quản trị Windows chưa? Tất cả các lỗi của bất kỳ loại nào luôn được đăng nhập trong phần này với các chi tiết tối thiểu.

Một lần tôi có ứng dụng bị lỗi mà không có ngoại lệ và chỉ trợ giúp tôi tìm thấy là Trình xem nhật ký sự kiện nơi tôi phát hiện thấy nguồn của sự cố là StackOverflowException.

+0

Đã kiểm tra, không có lỗi liên quan đến ứng dụng hoặc studio trực quan của tôi ... – feal87

+0

cơ hội là lỗi sẽ nằm trong nhật ký sự kiện, có thể trong một số dịch vụ hay dll không rõ ràng? – AUSteve

+0

Không, không có tin nhắn. – feal87

Các vấn đề liên quan