Firefox扩展的调试目前来看,似乎无法做到单步跟踪调试,只能通过“打印”到控制台的方法。查阅了一些资料,做了一些实验,简单总结一下我的一些调试心得。
1. 关于调试输出函数的选择
Components.utils.reportError()
建议安装Console²这个Firefox扩展来增强“错误控制台”的功能

2. 关于日志输出位置和查看输出日志的方法
默认Firefox设置情况下,dump()函数的输出是不会被记录到错误控制台的。为了方便调试,建议通过编辑user.js,增加以下配置项内容来记录所有的调试信息。
pref("browser.dom.window.dump.enabled", true); pref("javascript.options.showInConsole", true); pref("javascript.options.strict", true); pref("nglayout.debug.disable_xul_cache", true); pref("nglayout.debug.disable_xul_fastload", true);
user.js一般位于.mozilla/firefox/p9r1capr.xxx/
当然也可以通过修改about:config中的配置参数来达到相同的目的。
3. 设置Firefox的开发中扩展目录,方便测试
在Firefox的用户配置目录下,具体是/home/caprice/.mozilla/firefox/p9r1capr.dev/extensions,以你的扩展名为文件名新建一个文件,并以该扩展的发布版所在主目录绝对路径为内容写入该文件。如:
/home/caprice/NetBeansProjects/sqlinjme/build/testfirefox-3.6.3/extensions/sqlinjme@huangwei.me
这样每次在Netbeans中修改了扩展的源代码后可以不需重启浏览器,直接调试新代码。
4. 关于Netbeans+foxbeans中的Firefox扩展设置参数
nbproject/project-moz.properties
这里定义了所有Netbeans中用到的一些公共变量值,如:
#mozilla addon settings #Fri Jun 18 14:09:54 CST 2010 appdisplayname=sqlinjme targetApplications=\n<\!-- Mozilla Firefox -->\n\t\n\t\t{ec8030f7-c20a-464f-9b0e-13a3a9e97384}\n\t\t1.0\n\t\t3.6.*\n\t\n\n\n appname=sqlinjme appdescription=sqlinjme is a Mozilla/Firefox Addon mozInstallationName=Mozilla Firefox appversion=1.0 ffexec=/home/wind/bin/icecat-2.0.0.11-g1-i386/icecat appid=sqlinjme@huangwei.me auther=huangwei
如install.rdf、build.xml等重要的配置文件中都会引用这个文件中定义的变量。
原创文章,转载请注明: 转载自猪在笑 [ http://www.huangwei.me/blog/ ]
本文链接地址: http://www.huangwei.me/blog/2010/06/29/firefox-extension-debug/
最近评论