76

我想开发 GNOME Shell 扩展,发现进入开发过程真的很容易,但我仍然不知道如何有效地调试/测试我的扩展。

有没有为此目的的工具?有没有像现代浏览器或 JavaScript 服务器环境那样的实时控制台?

4

8 回答 8

79

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

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

于 2011-12-08T09:09:46.133 回答
46

在 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
于 2014-07-31T21:08:52.753 回答
21

镜子很棒。但是,如果您需要一个直接的控制台,您可以得到一个,但不是通过 LG,至少从 3.6 开始不是。

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

Alt您可以通过执行- F2 lg,然后global.log("foo")在“评估器”选项卡中使用“窥镜”对其进行测试。

于 2013-02-26T16:11:19.043 回答
8

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

于 2013-12-28T22:22:01.480 回答
6

在开发我自己的扩展程序时,其他答案对我并没有真正起作用。然而所做的是:

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 有关。

于 2017-04-27T10:02:45.703 回答
4

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

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

  • 我推荐 jsnjack 的一般调试答案,它也适用于 Debian Jessy;可能想要sudo那个。它会在您运行它的任何终端中显示 gnome 错误以及 global.log() 消息。

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

于 2014-10-20T01:45:41.443 回答
3

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

于 2014-01-26T21:26:33.187 回答
3

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

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

特征

  • 自动补全(比窥镜提供的要好得多)
  • 行、选择、当前函数、缓冲区的评估(可选地将结果粘贴到注释中的缓冲区)
  • 评估时的错误突出显示
  • 文档查找助手
  • 帮助重新加载您正在处理的模块而无需重新启动 gnome-shell
于 2017-12-08T23:44:35.583 回答