1

在处理大型 Firefox 插件时,我有时会不小心出现我的编辑器没有捕捉到的语法错误。发生这种情况时,调用

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

将根本无法导入或返回任何内容,没有任何有用的提示来说明在文件中查找语法错误的位置。当我的导入失败时,有什么方法可以让 Firefox 给我一些线索?

编辑:我解决了我自己的问题,结果证明我使用的代码具有对该navigator对象的全局引用。让这特别烦人的是代码在浏览器中加载时可以工作(正如 Wladimir 在下面建议的那样),但在我的扩展中导入时仍然会失败。

最终我求助于一种手动二进制搜索:我会删除一半的文件,然后查看导入是否仍然失败。如果是这样,那么我会删除剩下的一半并重复。只要它没有失败,我就可以更准确地了解问题出在哪里,这使我可以继续进行二分搜索或手动扫描较小的区域以查找问题。

这非常耗时,我仍然很感激有关如何加快此调试过程的任何建议。

4

1 回答 1

1

这里的问题很可能是https://developer.mozilla.org/en/Exception_logging_in_JavaScript上描述的问题,并且设置dom.report_all_js_exceptions首选项true应该可以工作。我必须承认我没有尝试过,但是因为设置此首选项会使错误控制台非常嘈杂。相反,我使用了一个丑陋的 hack 并将模块作为脚本加载到本地 HTML 文件中 - 这足以向我显示语法错误,幸运的是我不需要经常做的事情(这只是语法错误的问题,通常会报告运行时错误)。

于 2011-06-22T07:10:24.147 回答