【问题标题】:How to detect syntax errors when debugging Firefox extensions调试 Firefox 扩展时如何检测语法错误
【发布时间】:2011-06-21 19:09:30
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

    标签: firefox mdc


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多