2008-09-29 53 views
74

Trong Firefox, tôi có thể nhận được dấu vết ngăn xếp của một ngoại lệ bằng cách sử dụng exception.stack.Dấu vết ngăn xếp ngoại lệ Javascript

Có cách nào để làm điều đó trong các trình duyệt khác không?

Chỉnh sửa: Tôi thực sự muốn lưu dấu vết ngăn xếp tự động (nếu có thể) và không gỡ lỗi vào lúc đó (tức là tôi biết cách lấy dấu vết trong trình gỡ lỗi).

Trả lời

0

Không thực sự, ít nhất là không dễ dàng.

Trong IE, bạn có thể gỡ lỗi quy trình trình duyệt bằng Trình gỡ lỗi MS Script (vì lý do nào đó là thành phần Office) hoặc Visual Studio và sau đó bạn có thể thấy ngăn xếp trên điểm ngắt.

21

Webkit hiện nay có chức năng cung cấp đống dấu vết:

Web Inspector: Understanding Stack Traces, đăng bởi Yury Semikhatsky trên Thứ Tư 20 tháng 4, 2011 tại 07:32 (webkit.org)

Từ bài rằng:

+1

thuận tiện hơn nhiều so với việc tạo ra một ngoại lệ chỉ để xem ngăn xếp của nó. –

+0

Liên kết tuyệt vời, cảm ơn! – devios1

55

nơi dòng này, nơi bạn muốn in stack trace:

console.log(new Error().stack); 

Lưu ý: thử nghiệm của tôi trên Chrome 24Firefox 18

Có thể là giá trị tham gia một cái nhìn tại this tool là tốt.

+2

Sweet - Tôi sử dụng kết hợp onerror để lấy số dòng và sau đó quấn dòng vi phạm bằng cách thử bắt và đề xuất của bạn để cảnh báo stacktrace lại cho người dùng. ' window.onerror = function (thông báo, url, lineNumber) { cảnh báo ('message:' + message + '- url:' + url + '- ln:' + lineNumber); trả về true; }; ' Sau đó, bọc nó để in ra ngăn xếp. ' thử { // Một số mã gây ra ngoại lệ. } bắt (e) { cảnh báo (lỗi mới(). Ngăn xếp); } ' –

2

Nếu bạn muốn theo dõi chuỗi ngăn xếp, tôi muốn đi với câu trả lời của insin: stacktrace.js. Nếu bạn muốn truy cập các phần của một stacktrace (số dòng, tên tập tin, vv) stackinfo, mà thực sự sử dụng stacktrace.js dưới mui xe.

0

Bạn phải thử thư viện nguồn mở tốt TraceKit cố gắng tạo dấu vết ngăn xếp cho các ngoại lệ JavaScript chưa được xử lý trong tất cả các trình duyệt chính. Bạn có thể đọc thêm về Tracekit

https://github.com/csnover/TraceKit/

PS: Nếu bạn đang tìm kiếm một dịch vụ (sử dụng Tracekit) với giao diện người dùng tốt, bạn có thể thử Atatus

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