2010-09-20 19 views
23

我使用的是Firebug 1.5.4。當我引用一個未定義的變量或某些類似的東西時,它會在問題出現的地方突然出現,並將我引入調試視圖,在那裏我可以看到堆棧並檢查變量。如何讓異常的螢火蟲突破?

但是,當我拋出自己的異常時,它只是帶我到控制檯並打印出「未捕獲的異常:等等」。我想讓它突破,讓我檢查變量。我怎麼能告訴Firebug做到這一點?

+0

所以這樣做對你的工作呢?更多問題? – rfunduk 2010-09-22 14:54:44

回答

6

受訪者對我很有幫助,但忽略了一些我失蹤的關鍵; window.onerror事件。下面是完整的代碼:

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

這似乎還沒有給我一個有用的堆棧跟蹤。我的堆棧只顯示onerror()調用,而不是發生異常的代碼。 – pioto 2010-11-04 15:09:45

+0

試試這個: var arg = arguments [4]; s.stack; 這是當你仍然在window.onerror – TMT020 2015-06-24 13:33:06

0

在您的代碼中輸入debugger;聲明或使用螢火蟲的Script選項卡點擊行號(插入斷點)。

如果您只想在拋出異常時執行此操作,則可以將調試器語句置於catch塊中。

+4

在這種情況下使用斷點是不可行的,因爲直到第100次代碼纔會發生異常,而且我不想單步執行100次。我只在發生異常時纔會感興趣。但是告訴我更多關於這個「調試器」的信息;事情...... – 2010-09-20 19:14:48

+2

好吧,當你在catch塊中,但是在那裏調試程序,或者在那裏(或者在螢火蟲中插入一個斷點)時,發現你的異常。這樣,當異常發生時,您只會掉入調試器。 – rfunduk 2010-09-20 19:24:31

+0

在你的問題的上下文中,代碼'debugger;'與在該行的螢火蟲中插入斷點相同。 – rfunduk 2010-09-20 19:25:11

9

安裝Firebug的1.6b1 http://getfirebug.com/releases/firebug/1.6X,螢火蟲>控制檯>「例外」,在左欄點擊斷點選擇。運行你的代碼。 Firebug在這條線上休息。

或者螢火蟲>控制檯> [||]旁邊錯誤中斷

+3

breakpointed如果在一個非常常見的被稱爲代碼行很少發生異常,但很快就會變得煩人。 – pioto 2010-11-04 15:05:52

+2

在Firebug 1.7中,它被命名爲Track Throw/Catch – 2011-05-11 12:08:23