我想开发GNOME Shell扩展,发现它很容易进入开发过程,但我仍然无法弄清楚如何有效地调试/测试我的扩展。
有没有用于此目的的工具?在现代浏览器或javascript服务器环境中是否有任何类型的实时控制台?
答案 0 :(得分:54)
是的,实时控制台名为“Looking Glass”,可以通过按 Alt + F2 并在提示符下键入lg
来启动。
答案 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
- 然后r
和enter
重新启动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年底),但它已经非常有用了。
功能强>