gpt4 book ai didi

debugging - 如何使用 GNOME 的 Looking Glass?

转载 作者:行者123 更新时间:2023-12-02 22:09:12 32 4
gpt4 key购买 nike

我想涉足 Gnome Shell 的扩展开发,但我似乎无法理解如何在 Looking Glass lg 中执行一些任务来实际调试我的东西。

  1. 当我在 LG 中输入 global.log("hi"); 时,它会返回 r(...) = undefined。为什么?
  2. 当我想调试未加载的扩展时,该怎么做?
    很高兴知道为什么无法加载扩展。
    我尝试了 Main.ExtensionSystem.loadExtension() 但无论我向它提供扩展的名称字符串还是扩展的对象,它都会返回 undefined
  3. 在哪里可以找到类、对象和成员方法的文档?
    (LG检查员似乎无法检查功能。)

如果我拥有这些资源,我至少可以开始为较新的 Gnome 版本更新一些扩展。如果这些简单问题能在某个地方得到很好的解释,我不会问这些问题,但获取所有信息似乎非常困难(我已经在谷歌上搜索了几个小时)。

最佳答案

1:LookingGlass 基本上是一个 GJS 控制台。它允许您执行和测试 GJS 行、抓取和操作对象并使用 r(...) 在以下命令中使用结果。您得到 r(...) = undefined 的原因是因为 log(String); 没有返回任何内容,因此结果是 undefined .

2:记录整个 init()enable(),然后检查它中断的位置,并尝试使用日志或注释掉代码行来查明中断行(尽管罪魁祸首可能是在一般日志记录中定义的,如底部部分所述)。

3:没有官方文档。他们有一些过时的 GNOME Shell 3.4 教程,与 3.6 的解释略有不同,有几页介绍您使用的库的 C(++) 端(尽管大多数函数、变量和常量使用相同的名称),但是要获得任何真实信息,您需要经验,挖掘其他 GNOME 和 shell 扩展代码或一些非官方来源。然而,非官方来源并不总是最新的。

  • Up to date generated docs at RooJS ,尽管至少事件是关闭的,因为它们是用 -(减号)而不是 _(下划线)分隔的。
  • Old, but mostly useful documentation , MathematicalCoffee 有更多有用的东西,比如深入解释的代码,这是一个相当可靠的学习源。
  • Generated docs, almost everything is there ,非常广泛,但有时该网站会离线几天。您可以尝试克隆 git 存储库以在本地运行它,但 readme.md 是他们 fork 的内容的逐字副本...
  • More recent reference made by a user ,尽管这相当广泛,但如果您使用的是旧版本的 GNOME Shell,则它没有多大用处,因为已弃用且旧版本比下一代版本更可能工作。我建议您查看官方扩展网站并浏览您可以获得的任何有趣的扩展源代码,因为这是您学习任何内容的最佳选择。

一般来说,调试 gnome 可以通过多种方式完成。 - 使用log()函数并在命令行中遵循journalctl,检查GNOME或JS,使用journalctl -f | grep -i js(或使用grep -i gnome)。无论如何,您都会看到一些警告,但大多数都会提到它们来自哪个扩展。这很好,适用于所有实现 systemd 的发行版 - 或者记录属于 GNOME 一部分的特定进程,例如 journalctl/usr/bin/gnome-session -f -o cat,只需注意某些发行版和版本会记录到不同的文件和旧的 GNOME 版本经常记录到您的显示管理器记录到的任何内容。 - 使用官方(尽管很棘手)的日志记录方式:GNOME on debugging 。我个人无法让它发挥作用。

关于debugging - 如何使用 GNOME 的 Looking Glass?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14540012/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com