Introduction
Seer - une interface graphique pour gdb sous Linux. (Ernie Pasveer [email protected])
Ce projet est activement développé. L'objectif est une interface graphique simple, mais agréable, pour gdb.
Veuillez signaler tout bug ou fonctionnalité souhaitée à mon adresse e-mail ou créer une tâche sur ma
page de projet GitHub.
Installation
Seer peut être installé soit depuis un gestionnaire de paquets, soit depuis les sources.
[!NOTE]
Assurez-vous que les prérequis sont satisfaits avant l'installation.
Prérequis
Installer depuis un paquet
Disponible via les gestionnaires de paquets suivants :
Pamac (Manjaro)
$ pamac install seer
zypper (openSUSE Tumbleweed)
$ zypper install seergdb
Flathub
Site web Flathub. Ici
$ flatpak install flathub io.github.epasveer.seer
Flatpak
Versions bêta de Seer. Page de publication de Seer sur github.
Important : flatpak-spawn --host, nécessaire dans GDB Launcher pour exécuter gdb. Voir https://github.com/epasveer/seer/issues/377#issuecomment-3620844808.
Téléchargez seer.flatpak. Installez-le :
$ flatpak install -y --bundle --user seer.flatpak
Snap
Versions bêta de Seer. Page de publication de Seer sur github.
$ snap install seergdb_<version>.snap --dangerous
Installer depuis les sources
(Recommandé) Seer peut être compilé avec Qt6 en suivant les instructions ci-dessous.
https://github.com/epasveer/seer/wiki/Building-Seer---Qt6
Il peut encore être compilé avec Qt5, pour le moment, en suivant les instructions ci-dessous.
https://github.com/epasveer/seer/wiki/Building-Seer---Qt5
NOUVEAUTÉS
Consultez la page Wiki de Seer sur github.
- La version v1.17 sera la dernière version Qt5.
- La prochaine version sera la v2.0 et sera basée sur Qt6. Cependant, pour le moment, elle peut encore être compilée avec Qt5.
- Si vous voulez la dernière source Qt5 stable, récupérez la v1.17 ici : https://github.com/epasveer/seer/releases/tag/v1.17
Démarrer Seer
Seer est conçu pour démarrer facilement le programme à déboguer depuis la ligne de commande. gdb dispose de multiples
méthodes pour déboguer un programme. Seer en fait donc naturellement autant.
Rendez-vous sur le Wiki pour voir toutes les façons de lancer Seer.
https://github.com/epasveer/seer/wiki/Starting-Seer
Aperçu de l'interface graphique
Exemples des différentes vues et boîtes de dialogue de Seer.
Vue principale
La vue principale de Seer ressemble à ceci :

-
Source/Fonction/Types/Variables/Bibliothèques
- La liste des fichiers source/en-tête qui ont été utilisés dans le programme.
- Recherchez des fonctions, des types et des variables statiques.
Un double-clic ouvrira le fichier source.
- La liste des bibliothèques partagées référencées par le programme.
- La liste des fichiers source/en-tête peut être recherchée. Cela "réduira" la liste des fichiers affichés.
- Un double-clic sur un fichier l'ouvrira dans le gestionnaire de code.
-
Informations sur les variables/registres
- Afficher les valeurs des variables et des registres.
- "Logger" - journaliser la valeur d'une variable. Saisissez-la manuellement ou double-cliquez sur la variable dans le fichier
ouvert dans le gestionnaire de code.
- "Tracker" - créer une liste de variables dont la valeur sera affichée chaque fois que gdb atteint un point d'arrêt
(step, next, finish, etc.). Lorsque le point d'arrêt est atteint, toutes les variables de la liste afficheront
leur nouvelle valeur potentielle.
- "Registers" - afficher les valeurs de tous les registres du processeur.
-
Gestionnaire de code.
- La grande zone de la partie centrale de l'interface graphique de Seer.
- Les fichiers source sont ouverts dans cette vue.
- Le texte d'un fichier peut être recherché avec ^F.
- Des variables peuvent être ajoutées au "Logger" en double-cliquant sur le nom de la variable.
Un double-clic avec la touche CTRL enfoncée préfixera la variable par "".
Un double-clic avec la touche SHIFT enfoncée préfixera la variable par "&".
Un double-clic avec les touches CTRL+SHIFT enfoncées préfixera la variable par "&".
- Des variables peuvent être ajoutées au "Tracker" en sélectionnant le nom de la variable, puis clic droit et sélection
de "Add variable to Tracker".
- Des variables peuvent être ajoutées au "Memory Visualizer" en sélectionnant le nom de la variable, puis clic droit et sélection
de "Add variable to Memory Visualizer".
- Un point d'arrêt/point d'impression peut être créé par clic droit sur une ligne spécifique.
- Exécuter jusqu'à une ligne spécifique par clic droit sur une ligne spécifique.
- Les onglets de cette vue peuvent être détachés en double-cliquant sur un onglet.
-
Points d'arrêt, points de surveillance, points de capture, points d'impression, commandes gdb manuelles et journaux.
- La zone située sous le gestionnaire de code.
- Commandes manuelles. Saisissez manuellement une commande gdb ou gdbmi.
Les commandes sont mémorisées pour la prochaine utilisation de Seer.
- Gestionnaire de points d'arrêt. Créer et gérer des points d'arrêt.
- Gestionnaire de points de surveillance. Créer et gérer des points de surveillance.
Un point de surveillance surveille l'accès à une variable (lecture, écriture, lecture/écriture).
- Gestionnaire de points de capture. Créer et gérer des points de capture.
Un point de capture arrête l'exécution lors d'un appel C++ throw/rethrow/catch.
- Gestionnaire de points d'impression. Créer et gérer des points d'impression.
Un point d'impression est comme un point d'arrêt, mais il vous permet d'afficher des variables à
ce point d'impression. Voir l'appel 'dprintf' de gdb.
- Sortie GDB. Un journal de toute sortie du programme gdb lui-même.
- Sortie Seer. Un journal de toute sortie du programme Seer lui-même. À titre de diagnostic.
- Les onglets de cette vue peuvent être détachés en double-cliquant sur un onglet.
-
Informations sur les cadres de pile.
- Liste des cadres de pile. Un double-clic sur un cadre permet de changer la portée (la fonction courante).
- Arguments des cadres de pile. Pour chaque cadre, afficher les arguments passés à chaque fonction.
- Variables locales de la pile. Pour la fonction courante, afficher les valeurs des variables locales.
-
Informations sur les threads.
- Identifiants des threads. Une liste de tous les threads. Double-cliquez sur un identifiant de thread pour changer la portée (le thread courant).
- Cadres des threads. Pour chaque thread, lister ses cadres de pile.