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

mar*_*cio 60 javascript gnome-shell gnome-3 gnome-shell-extensions

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

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

pto*_*ato 60

是的,实时控制台被称为"Looking Glass",可以通过按Alt+ F2lg在提示符下键入来启动.

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

  • 如果您想将其打开并与桌面进行交互,它就毫无用处了... (3认同)

jsn*_*ack 38

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

journalctl /usr/bin/gnome-session -f -o cat
Run Code Online (Sandbox Code Playgroud)

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

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

journalctl /usr/bin/gnome-shell -f -o cat
Run Code Online (Sandbox Code Playgroud)

  • 这比`gnome-shell --replace`要好得多,因为id不会将gnome shell会话附加到终端:) (2认同)

Geo*_*off 20

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

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

您可以使用Looking Glass通过执行Alt- F2 lg,然后global.log("foo")在"Evaluator"选项卡中对其进行测试.

  • 那是因为你杀死了你唯一的 gnome-shell 实例。不要在完成后用 `Cc` 杀死它,而是点击 `Cz` 来暂停它。然后在控制台中输入`bg<CR>`(在输入这个命令时你可能看不到你在输入什么),然后 gnome-shell 将在后台运行。接下来,运行`disown <Tab><CR>` 将进程与终端窗口分离,之后您可以安全地关闭终端窗口。 (3认同)

The*_*hog 7

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

  • @ User231371想指出:在Ubuntu gnome中,日志在〜/ .cache/upstart/gnome-session.log中. (7认同)

hug*_*ige 5

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

journalctl /usr/lib/gnome-session/gnome-session-binary -f -o cat 
Run Code Online (Sandbox Code Playgroud)

如果您想整理输出以查看您的应用程序,您可以使用:

journalctl /usr/lib/gnome-session/gnome-session-binary -f -o cat | grep [myAppId]
Run Code Online (Sandbox Code Playgroud)

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

global.log('[myAppId]', valueToLog);
Run Code Online (Sandbox Code Playgroud)

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

journalctl -f | grep gnome-session
Run Code Online (Sandbox Code Playgroud)

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

  • 相反,日志消息 *do* 显示在 `journalctl /usr/bin/gnome-shell` 中。 (2认同)