2011-06-21 83 views
1

在處理大型Firefox插件時,我有時會意外地發現語法錯誤,而我的編輯器沒有捕獲它。當發生這種情況,然後調用如何在調試Firefox擴展時檢測語法錯誤

Components.utils.import("resource://modules/Foo.js") 

只會無法導入或返回任何東西,沒有任何一種有用的提示,以在文件中查找語法錯誤。當我的imports失敗時,有什麼辦法可以讓Firefox給我一些線索嗎?

編輯:我解決了自己的問題,結果證明我使用的代碼對全局引用了navigator對象。什麼讓這特別煩人的是,代碼將在瀏覽器中加載(如弗拉基米爾下面建議的那樣),但在我的擴展中導入時仍會失敗。

最終我使用了一種手動二分搜索:我會刪除文件的一半,然後看看導入是否仍然失敗。如果是這樣,那麼我會刪除剩下的一半並重復。只要它沒有失敗,我就可以更準確地瞭解問題出在哪裏,這使我可以繼續進行二分查找或手動掃描較小的區域來查找問題。

這非常耗費時間,我仍然很感激任何關於如何加快調試過程的建議。

回答

1

這裏的問題最有可能是在https://developer.mozilla.org/en/Exception_logging_in_JavaScript上描述的問題,並且設置dom.report_all_js_exceptions優先爲true應該有效。我必須承認,我還沒有嘗試過,因爲設置此偏好會使錯誤控制檯非常嘈雜。相反,我使用一種醜陋的黑客方式,並將模塊作爲腳本加載到本地HTML文件中 - 這足以向我展示語法錯誤,幸運的是我不需要經常這樣做(這只是語法錯誤的問題,通常會報告運行時錯誤)。