2010-09-20 27 views
23

Tôi đang sử dụng Firebug 1.5.4. Khi tôi tham chiếu một biến không xác định hoặc một số như vậy, nó phá vỡ ngay nơi xảy ra sự cố và ném tôi vào chế độ xem gỡ lỗi nơi tôi có thể thấy ngăn xếp và kiểm tra các biến.Làm thế nào để có được firebug để phá vỡ ngoại lệ?

Tuy nhiên, khi tôi ném ngoại lệ của riêng mình, nó chỉ đưa tôi đến bàn điều khiển và in ra "ngoại lệ không bị bắt buộc: blah". Tôi muốn nó phá vỡ và để tôi kiểm tra các biến. Làm thế nào tôi có thể nói với Firebug để làm điều này?

+0

Vì vậy, đã làm công việc đó cho bạn, sau đó? Các vấn đề khác? – rfunduk

Trả lời

6

Bị đơn là hữu ích nhưng bỏ qua một cái gì đó rất quan trọng tôi đã mất tích; sự kiện window.onerror. Đây là mã đầy đủ:

window.onerror = function(msg) { 
    debugger; 
} 
+4

Điều đó dường như không cho tôi một dấu vết ngăn xếp hữu ích. Ngăn xếp của tôi chỉ hiển thị cuộc gọi onerror(), không phải là mã nơi ngoại lệ xảy ra. – pioto

+0

Hãy thử cách này: var arg = arguments [4]; s.stack; Đây là lúc bạn vẫn bị ngắt trong cửa sổ.onerror – TMT020

0

Đặt câu hỏi debugger; trong mã của bạn hoặc sử dụng tab Script của con bọ lửa để nhấp vào số dòng (chèn số điểm ngắt).

Nếu bạn chỉ muốn làm điều đó khi bạn ném ngoại lệ, bạn có thể đặt câu lệnh trình gỡ lỗi trong khối catch.

+4

Không thể sử dụng điểm ngắt trong trường hợp này vì ngoại lệ có thể không xảy ra cho đến lần thứ 100 thông qua mã và tôi không muốn vượt qua nó 100 lần. Tôi chỉ quan tâm nếu/khi một ngoại lệ xảy ra. Nhưng hãy cho tôi biết thêm về "trình gỡ lỗi" này; Điều này ... –

+2

Ok vậy khi bạn bắt ngoại lệ của bạn, trong khối 'catch', nhưng' trình gỡ lỗi; 'trong đó (hoặc chèn một điểm ngắt có trong firebug). Bằng cách đó bạn sẽ chỉ bị rơi vào trình gỡ rối khi ngoại lệ xảy ra. – rfunduk

+0

Trong ngữ cảnh câu hỏi của bạn, mã 'trình gỡ rối;' đơn giản giống như chèn một điểm ngắt trong firebug trên dòng đó. – rfunduk

9

Cài đặt Firebug 1.6b1 http://getfirebug.com/releases/firebug/1.6X, Firebug> Console> "ngoại trừ" Click chọn breakpoint ở cột bên trái. Chạy mã của bạn. Firebug phá vỡ trên dòng đó.

Hoặc Firebug> Console> [||] phá vỡ về lỗi tiếp theo

+3

Nếu ngoại lệ chỉ hiếm khi xảy ra trên một dòng mã được gọi là rất thường xuyên, điều này sẽ gây phiền toái rất nhanh. – pioto

+2

Trong Firebug 1.7 nó được đặt tên theo dõi ném/bắt –

6

Gọi Web Developer Debugger (Tools => Web Developer => Debugger hoặc Ctrl + Shift + S), nhấp vào biểu tượng bánh răng và kiểm tra "Tạm dừng vào ngoại lệ":

enter image description here

Hoặc thực hiện debugger; trong Web Developer điều khiển!

Official Web Developer Debugger tài liệu: https://developer.mozilla.org/en-US/docs/Tools/Debugger

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