2010-09-23 37 views
5

Các số trong dấu vết ngăn xếp .NET trên trang lỗi ASPX (xem ảnh) là gì? Họ dường như không phải là số dòng vì chúng quá lớn? Làm thế nào những con số đó có thể giúp tôi trong việc xác định dòng mã đã ném ngoại lệ?Các số trong dấu vết ngăn xếp .NET trên trang lỗi ASPX là gì?

Stack trace example

+1

Đây là phần bù vào mã gốc: http://odetocode.com/Blogs/scott/archive/2005/01/25/funny-numbers-in-my-stack-trace.aspx – rickythefox

Trả lời

9

EDIT: Như này đã được đánh dấu đúng, tôi cũng có thể chỉnh sửa nó để làm cho nó quá :)

Họ offsets trong mã nguồn gốc JITted của phương pháp. Thật không may có nghĩa là họ không giúp đỡ rất nhiều khi cố gắng tìm ra những gì đang diễn ra. Xem this blog post để biết ví dụ chi tiết hơn.

+1

Chúng cũng có thể * * offsets bản địa (như một sẽ nhận được với một dấu vết gốc), trong thực tế tôi nghi ngờ điều này sẽ làm cho bất kỳ sự khác biệt (vấn đề với offsets bản địa lớn cho thấy các biểu tượng không phù hợp không áp dụng cho. NET). – Richard

+0

Bù đắp từ cái gì? Phương pháp InitView ở trên thậm chí không gần 1064 dòng IL ... – rickythefox

+0

@Crassy: Không phải dòng IL * *, nhưng bù lệch IL * * - như trong, các con số hiển thị bên trái trong ILDASM. Một lệnh đơn có thể mất vài byte IL. –

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