如何测试/调试GNOME Shell扩展?那有什么工具吗?

时间:2011-12-08 03:05:06

标签: javascript gnome-3 gnome-shell gnome-shell-extensions

我想开发GNOME Shell扩展,发现它很容易进入开发过程,但我仍然无法弄清楚如何有效地调试/测试我的扩展。

有没有用于此目的的工具?在现代浏览器或javascript服务器环境中是否有任何类型的实时控制台?

8 个答案:

答案 0 :(得分:54)

是的,实时控制台名为“Looking Glass”,可以通过按 Alt + F2 并在提示符下键入lg来启动。

更多信息:https://live.gnome.org/GnomeShell/LookingGlass

答案 1 :(得分:35)

在Fedora 20(可能还有任何新的Linux发行版)上,您可以使用该命令:

journalctl /usr/bin/gnome-session -f -o cat

它不断地(-f)打印终端窗口中由gnome-session生成的错误。我更喜欢-o cat标记,因为它显示没有时间戳的完整消息。

在Fedora 22上,我相信它已被替换为:

journalctl /usr/bin/gnome-shell -f -o cat

答案 2 :(得分:18)

Looking Glass很棒。但是,如果你需要一个直接的控制台,你可以得到一个,但不能通过LG,至少不是3.6。

如果弹出一个终端并输入gnome-shell --replace,gnome-shell将从那里运行,替换正在运行的实例,此后全局日志输出将出现在该控制台中。

您可以使用Looking Glass通过 Alt - F2 lg进行测试,然后在“Evaluator”标签中进行global.log("foo")。< / p>

答案 3 :(得分:7)

我更喜欢阅读~/.xsession-errors~/.cache/gdm/session.log文件以获取更多详细信息。某些错误消息可能与其他异常或错误有关。

答案 4 :(得分:3)

我还没有对其他答案发表评论,所以我想补充一下 - 不管它有多晚了:

  • 对于Geoff回答的评论2,只需通过alt+f2 - 然后renter重新启动shell,当发生这种情况时 - 终端运行会话将自动结束(至少在Debian上。)

  • 我建议使用jsnjack的一般调试答案,这也适用于Debian Jessy;可能想要sudo。它会在你运行它的终端中显示gnome错误以及global.log()消息。

如果有的话,这为我提供了一个更完整的参考 - 因为我在参考信息时不止一次地遇到过这个页面我不会记忆犹新。

答案 5 :(得分:2)

Anjuta Dev-Studio是一个使用gnome-shell扩展的好工具;它配备了调试器,GUI设计器,版本控制等。甚至还有一个指导教程,用于在gnome的wiki-pages上使用Anjuta和gnome-shell扩展项目

答案 6 :(得分:2)

在开发我自己的扩展时,其他答案对我来说并不合适。但是做了什么:

journalctl /usr/lib/gnome-session/gnome-session-binary -f -o cat 

如果您希望将输出整理为仅查看您的应用,可以使用:

journalctl /usr/lib/gnome-session/gnome-session-binary -f -o cat | grep [myAppId]

如果您还想使用上述方法访问非错误日志,可以使用:

global.log('[myAppId]', valueToLog);

如果你不知道你的gnome会话的正确路径,你也可以使用:

journalctl -f | grep gnome-session

为什么它不起作用可能是因为我的gnome-session-binary路径不同,这可能与正在安装的更新版本的gnome有关。

答案 7 :(得分:1)

我们正在开发一个针对gnome-shell扩展开发的emacs包:https://github.com/paperwm/gnome-shell-mode

它仍处于“测试版”(2017年底),但它已经非常有用了。

功能

  • 自动完成(比看镜子提供的要好得多)
  • 行,选择,当前函数,缓冲区的评估(可选择将结果粘贴到注释中的缓冲区中)
  • 评估时突出显示错误
  • 文档查找助手
  • 帮助重新加载您正在处理的模块,而无需重新启动gnome-shell