2010-10-29 30 views
71

Tôi đang cố gắng giải mã ý nghĩa trên P1 ... tham số P10 được kết hợp với clr20r3 được ghi vào nhật ký sự kiện khi ứng dụng của tôi gặp ngoại lệ.Giải mã tham số ngoại lệ .NET clr20r3 P1..P10

Điều tốt nhất tôi đã been able to find là:

  • P1: quá trình lưu trữ (ví dụ w3wp.exe)
  • P2: phiên bản trình lưu trữ (ví dụ 6.0.3790.1830)
  • P3: ??? (ví dụ42435be1)
  • P4: lắp ráp mà từ đó các ngoại lệ được nâng lên (ví dụmrtables.webservice)
  • P5: phiên bản lắp ráp (ví dụ2.1.2.0)
  • P6: ??? (ví dụ:4682617f)
  • P7: ??? (ví dụ:129)
  • P8: ??? (Ví dụ 50)
  • P9: loại ngoại lệ huy động (ví dụ system.argumentexception)
  • P10: ??? (Ví dụ NIL)

Googling for clr20r3 cung cấp hàng ngàn các giá trị tham số mẫu, từ đó ai đó có thể cố gắng để đưa ra một mô hình.

Nhưng tôi hy vọng tài liệu về ý nghĩa thông số, trái ngược với dự đoán được giáo dục.


Edit: Trong khi tôi có thể hy vọng cho các tài liệu kinh điển, thực sự tôi muốn được hạnh phúc để xem ngoại lệ được ném ra, vào những gì dòng, hoàn chỉnh với một vết đống.

Trả lời

67

Dưới đây là thông tin về Watson Xô

  1. Exe File Name
  2. Exe lắp ráp tập tin số phiên bản
  3. Exe File Stamp
  4. tập tin Exe tên lắp ráp đầy đủ
  5. Faulting phiên bản lắp ráp
  6. Dấu thời gian lắp ráp lỗi
  7. Fau lting phương pháp lắp ráp def
  8. phương pháp Faulting IL offset trong phương pháp đứt gãy
  9. loại ngoại lệ

Và cũng ở đây là một bài viết MSDN trên cùng.

mẫu:

Problem Signature 01: devenv.exe 
    Problem Signature 02: 11.0.50727.1 
    Problem Signature 03: 5011ecaa 
    Problem Signature 04: Microsoft.VisualStudio.SharePoint.Project 
    Problem Signature 05: 11.0.60226.0 
    Problem Signature 06: 512c2dba 
    Problem Signature 07: 18a8 
    Problem Signature 08: 1d 
    Problem Signature 09: System.NullReferenceException 
+2

Bạn có xảy ra liên kết tham chiếu để ghi lại phần còn lại của nhóm watson không? Ví dụ, xô P4 mô tả các mô-đun bị lỗi, xô P9 hiển thị loại ngoại lệ mà không được giải quyết, và xô P8 đại diện cho bù đắp IL mà tại đó ngoại lệ ban đầu được ném. "*) –

+2

Tôi đã thêm một mẫu về nó – Kiquenet

100

P7 và P8 là những người quan trọng để tìm ra nơi ngoại trừ P9 được nâng lên. Sử dụng P4 để biết những gì lắp ráp để tìm kiếm. Chạy ildasm.exe và mở assembly đó. File + Dump, đánh dấu vào ô "Token values", OK và lưu file .il ở đâu đó.

Mở tệp trong trình chỉnh sửa văn bản. P7 cung cấp cho bạn mã thông báo phương thức, nó bắt đầu bằng 0x06, tạo ra giá trị mã thông báo "06000129". Tìm kiếm:

.method /*06000129*/ 

Cung cấp cho bạn tên phương thức, tra cứu từ đó để tìm .class, cung cấp cho bạn tên lớp.

P8 cung cấp cho bạn mức bù IL. Từ tìm được .method, tìm IL_0050 cho lệnh đã đưa ra ngoại lệ. Việc ánh xạ nó trở lại mã nguồn của bạn hơi phức tạp một chút nhưng có thể bạn sẽ tìm ra nó. Sử dụng Reflector nếu cần thiết.

Nói chung, hãy viết trình xử lý sự kiện cho AppDomain.UnhandledException để tránh sự đau đớn của việc đảo ngược kỹ thuật các thùng tai nạn Watson này. Ghi lại giá trị của e.ExceptionObject.ToString() để nhận cả thông báo ngoại lệ và theo dõi ngăn xếp.

+2

Nếu ngoại lệ xảy ra trong mã thư viện, bạn có thể cần theo dõi ngăn xếp anyways để tìm ra mã của bạn đã được trên ngăn xếp. (Sẽ tốt nếu Microsoft sửa đổi hộp thoại đó thành đẹp hơn.) –

+1

Ngoài việc xử lý UnhandledException, nó cũng giúp thử/nắm bắt ngay bên trong Chính, vì đôi khi sự cố xảy ra trước khi trình xử lý UnhandledException được cài đặt. –

+0

Tôi nghĩ rằng điều này sẽ giúp tôi tiết kiệm cho bạn của tôi. Tôi đã có một ứng dụng ASP.NET mà rơi vào lòng tôi mà giữ crashing hồ bơi ứng dụng - và một danh sách lỗi 'CLR20R3' với một bó của những giá trị' P' là nhận được đăng nhập ngay xung quanh thời gian tai nạn. Nó có thể lộn xộn, nhưng nó có lẽ sẽ dẫn tôi đến một giải pháp, nhưng cuối cùng tôi sẽ phải sửa đổi mã này và nhận được một số đăng nhập thực sự xảy ra. –

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