Je voudrais développer des extensions GNOME Shell et j'ai trouvé qu'il était vraiment facile de s'engager dans le processus de développement, mais je ne sais toujours pas comment déboguer/tester mes extensions efficacement.
Existe-t-il des outils à cet effet? Existe-t-il une sorte de console en temps réel comme celle que nous avons sur les navigateurs modernes ou les environnements de serveurs javascript?
Oui, la console en temps réel s'appelle "Looking Glass" et peut être démarrée en appuyant sur Alt+F2 et en tapant lg
à l'invite.
Plus d'informations: https://live.gnome.org/GnomeShell/LookingGlass
Sur Fedora 20 (et probablement toute nouvelle distribution Linux), vous pouvez utiliser cette commande:
journalctl /usr/bin/gnome-session -f -o cat
Il constamment (-f
) affiche les erreurs générées par gnome-session dans la fenêtre du terminal. Je préfère -o cat
flag car il affiche des messages complets sans horodatage.
Sur Fedora 22, je crois, il a été remplacé par:
journalctl /usr/bin/gnome-Shell -f -o cat
Le miroir est super. Si vous avez besoin d'une console droite, vous pouvez en obtenir une, mais pas via LG, du moins pas à partir de la 3.6.
Si vous ouvrez un terminal et tapez gnome-Shell --replace
, Gnome-Shell s'exécutera à partir de là, remplaçant l'instance en cours d'exécution et la sortie du journal global apparaîtra ensuite dans cette console.
Vous pouvez le tester avec Looking Glass en faisant Alt-F2 lg
, puisglobal.log("foo")
dans l'onglet "Evaluateur".
Je préfère lire ~/.xsession-errors
et ~/.cache/gdm/session.log
fichiers pour plus de détails. Certains des messages d'erreur peuvent avoir une relation avec d'autres exceptions ou erreurs.
Je ne peux pas encore commenter d'autres réponses, alors j'ai pensé ajouter - aussi tard soit-il:
Pour le commentaire 2 de la réponse de Geoff, redémarrez simplement le shell via alt+f2
- puis r
et enter
, lorsque cela se produit - la session exécutée par le terminal se terminera automatiquement (au moins sur Debian).
Je recommanderais la réponse de jsnjack pour le débogage général, qui fonctionne également avec Debian Jessy; je veux probablement Sudo
ça. Il affichera les erreurs gnome, ainsi que les messages global.log () dans le terminal dans lequel vous l'exécutez.
Si quoi que ce soit, cela fournit une référence plus complète pour moi - comme je suis tombé sur cette page plus d'une fois lorsque je fais référence à des informations, je ne me rafraîchis pas la mémoire.
Anjuta Dev-Studio est un excellent outil pour travailler avec les extensions gnome-Shell; il est équipé d'un débogueur, d'un concepteur d'interface graphique, d'un contrôle de version, etc. Il y a même un tutoriel guidé pour utiliser Anjuta avec des projets d'extension gnome-Shell sur gnome wiki-pages
Les autres réponses n'ont pas vraiment fonctionné pour moi lors du développement de ma propre extension. Ce qui a cependant été:
journalctl /usr/lib/gnome-session/gnome-session-binary -f -o cat
Si vous souhaitez désencombrer la sortie pour ne voir que votre application, vous pouvez utiliser:
journalctl /usr/lib/gnome-session/gnome-session-binary -f -o cat | grep [myAppId]
Si vous souhaitez également accéder aux journaux sans erreur à l'aide de la méthode ci-dessus, vous pouvez utiliser:
global.log('[myAppId]', valueToLog);
Si vous ne connaissez pas le bon chemin vers votre session gnome, vous pouvez également utiliser:
journalctl -f | grep gnome-session
La raison pour laquelle cela ne fonctionnait pas est probablement dû au fait que mon chemin binaire de gnome-session était différent, ce qui pourrait être lié à l'installation d'une nouvelle version de gnome.
Nous développons un paquet emacs destiné au développement d'extensions gnome-Shell ici: https://github.com/paperwm/gnome-Shell-mode
C'est toujours en "beta" (déc. 2017), mais c'est déjà très utile.
Caractéristiques