2013-01-17 66 views
0

我有一個難以定位的錯誤影響JS代碼庫;週期性地,數組被訪問超出範圍,這導致了TypeError: initial[data[(i + offset)]] is undefined錯誤(注意:類似的索引被發現在幾十個地方)。有什麼辦法可以使錯誤成爲致命的,並在那時停止執行,以便可以檢查堆棧跟蹤?JavaScript停止的錯誤

如何在沒有在代碼庫中添加throws()或if語句的情況下強制這些警告成爲錯誤?有沒有辦法強制執行「嚴格」操作,例如gcc中的-Wall -Wfatal-errors標誌?

我使用的是最新的穩定版FireBug + Firefox,但如果有任何機制,可以轉換到Chrome控制檯。

+0

我期望控制檯中顯示的錯誤行號。 –

+0

我可以很容易找到錯誤;問題在於它們不是在那個時候引起的,而是在堆棧中更高。我可以通過放置一個條件斷點來單獨追蹤它們中的每一個,但是我想知道是否有任何方法可以用這種方式來捕獲所有*警告,而不是一個一個的。 – tucuxi

+0

因此,澄清:這不是「我該如何調試」,而是「我怎樣才能更有效地調試」 – tucuxi

回答

1

只需啓用break on…all errors

Chrome Devtools和Opera Dragonfly提供了類似的選項。

+0

Firebug 1.11.1似乎不可用 - 該設置不在手冊中說明的位置;它可以通過about:config作爲'extensions.firebug.breakOnErrors'使用,但似乎沒有任何效果 – tucuxi

+0

但是,您將我扔在了正確的軌道上:console>顯示帶錯誤的堆棧跟蹤很好地解決了問題。如果你關心編輯你的答案,我會接受它。 – tucuxi