Как проверить / отладить расширения GNOME Shell?Есть ли какой-нибудь инструмент для этого? - PullRequest
59 голосов
/ 08 декабря 2011

Я хотел бы разработать расширения оболочки GNOME и обнаружил, что действительно легко вступить в процесс разработки, но я все еще не могу понять, как эффективно отлаживать / тестировать мои расширения.

Есть ли инструменты для этой цели? Есть ли какая-либо консоль реального времени, как у нас в современных браузерах или средах javascript-серверов?

Ответы [ 8 ]

57 голосов
/ 08 декабря 2011

Да, консоль реального времени называется «Looking Glass» и может быть запущена нажатием Alt + F2 и вводом lg в приглашении.1007 * Дополнительная информация: https://live.gnome.org/GnomeShell/LookingGlass

37 голосов
/ 01 августа 2014

В Fedora 20 (и, возможно, в любом новом дистрибутиве Linux) вы можете использовать эту команду:

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

Он постоянно (-f) печатает ошибки, сгенерированные сеансом gnome, в окне терминала. Я предпочитаю флаг -o cat, поскольку он показывает полные сообщения без отметок времени.

На Fedora 22, я думаю, его заменили на:

journalctl /usr/bin/gnome-shell -f -o cat
19 голосов
/ 26 февраля 2013

Зазеркалье замечательно. Если вам нужна прямая консоль, вы можете получить ее, но не через LG, по крайней мере, с 3,6.

Если вы откроете терминал и наберете gnome-shell --replace, оттуда запустится gnome-shell, заменив запущенный экземпляр, и после этого в этой консоли появится вывод глобального журнала.

Вы можете проверить его с помощью Looking Glass, выполнив Alt - F2 lg, а затем global.log("foo") на вкладке «Оценщик».

7 голосов
/ 29 декабря 2013

Я предпочитаю читать файлы ~/.xsession-errors и ~/.cache/gdm/session.log для более подробной информации. Некоторые сообщения об ошибках могут иметь отношение к другим исключениям или ошибкам.

3 голосов
/ 20 октября 2014

Я пока не могу комментировать другие ответы, поэтому подумал, что добавлю - как бы поздно это ни было:

  • Для комментария 2 ответа Джеффа просто перезапустите оболочку черезalt+f2 - затем r и enter, когда это произойдет - сеанс запуска терминала завершится автоматически (по крайней мере, в Debian).

  • Я бы порекомендовал ответ jsnjackдля общей отладки, которая также работает с Debian Jessy;вероятно, хотеть sudo, что все же.Он будет отображать ошибки gnome, а также сообщения global.log () в любом терминале, в котором вы его запускаете.

Если что-нибудь, это дает мне более полную ссылку - как яя сталкивался с этой страницей несколько раз, когда ссылался на информацию, которую я не храню в памяти.

2 голосов
/ 27 апреля 2017

Другие ответы не помогли мне при разработке собственного расширения.Однако, что было:

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.

2 голосов
/ 27 января 2014

Anjuta Dev-Studio - отличный инструмент для работы с расширениями gnome-shell;он оснащен отладчиком, дизайнером графического интерфейса, системой контроля версий и многим другим.Существует даже руководство по использованию Anjuta с проектами расширения оболочки gnome на вики-страницах gnome

1 голос
/ 09 декабря 2017

Мы разрабатываем пакет emacs для разработки расширений gnome-shell здесь: https://github.com/paperwm/gnome-shell-mode

Он все еще находится в "бета-версии" (декабрь 2017), но уже очень полезен.

Особенности

  • Автозаполнение (намного лучше, чем у зеркала)
  • Оценка строки, выделения, текущей функции, буфера (опционально, вставка результата в буфер в комментарии)
  • Подсветка ошибки при вычислении
  • Помощник по поиску документации
  • Помощник для перезагрузки модуля, с которым вы работаете, без перезапуска gnome-shell
...