如何testing/debuggingGNOME Shell扩展? 有没有什么工具?

我想开发GNOME Shell扩展,发现进入开发过程非常简单,但我仍然无法弄清楚如何有效地debugging/testing扩展。

有没有用于这个目的的工具? 是否有像现代浏览器或JavaScript服务器环境那样的实时控制台?

是的,实时控制台被称为“Looking Glass”,可以通过按Alt + F2并在提示符处inputlg来启动。

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

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

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

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

在Fedora 22上,我相信它被replace为:

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

outlook玻璃是伟大的。 如果你需要一个直接的控制台,你可以得到一个,但不能通过LG,至less不是3.6。

如果你popup打开一个terminal并键入gnome-shell --replace ,gnome-shell将从那里运行,replace正在运行的实例,全局日志输出将出现在那个控制台中。

您可以通过执行AltF2 lg ,然后在“Evaluator”选项卡中的global.log("foo") ,使用Looking Glass对其进行testing。

我更喜欢阅读~/.xsession-errors~/.cache/gdm/session.log文件。 某些错误消息可能与其他exception或错误有关系。

我还不能评论其他答案,所以想到我会补充 – 但是可能迟到:

  • 对于Geoff答案的评论2,只需通过alt+f2重新启动shell – 然后r enter ,当发生这种情况时,terminal运行会话将自动结束(至less在Debian上)。

  • 我推荐jsnjack的一般debugging的答案,这也适用于Debian Jessy。 可能要sudo ,虽然。 它会显示gnome错误,以及运行它的任何terminal中的global.log()消息。

如果有的话,这为我提供了一个更完整的参考 – 因为当我参考信息时,我不止一次遇到这个页面,我不记得我的记忆。

Anjuta Dev-Studio是使用gnome-shell扩展的好工具; 它配备了一个debugging器,GUIdevise器,版本控制等等。 甚至还有一个在GNOME的wiki页面上使用Anjuta和gnome-shell扩展项目的指导教程

其他答案在开发自己的扩展时并不适合我。 然而,什么是:

 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会话的正确path,你也可以使用:

 journalctl -f | grep gnome-session 

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

Interesting Posts