web-dev-qa-db-fra.com

Comment tester / déboguer les extensions du shell GNOME? Existe-t-il un outil pour cela?

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?

59
marcio

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

59
ptomato

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
37
jsnjack

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".

20
Geoff

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.

7
The_Cute_Hedgehog

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.

3
Rik

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

2
ILMostro_7

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.

2
hugo der hungrige

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

  • Autocompletion (beaucoup mieux que ce que le miroir offre)
  • Eval de ligne, sélection, fonction actuelle, tampon (éventuellement coller le résultat dans le tampon dans un commentaire)
  • Surbrillance d'erreur lors de l'évaluation
  • Aide à la recherche de documentation
  • Aide à recharger le module sur lequel vous travaillez sans redémarrer gnome-Shell
1
olejorgenb