
Seer - une interface graphique frontale pour gdb
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.
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.
Linux
C++17
gdb avec l'interpréteur "mi" (vérifiez en exécutant : gdb --interpreter=mi)
CMake (3.5.0 ou plus récent)
QT6
QT5
Disponible via les gestionnaires de paquets suivants :
$ pamac install seer
$ zypper install seergdb
Site web Flathub. Ici
$ flatpak install flathub io.github.epasveer.seer
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
Versions bêta de Seer. Page de publication de Seer sur github.
$ snap install seergdb_<version>.snap --dangerous
(Recommandé) Seer peut être compilé avec Qt6 en suivant les instructions ci-dessous.
Il peut encore être compilé avec Qt5, pour le moment, en suivant les instructions ci-dessous.
Consultez la page Wiki de Seer sur github.
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.
Exemples des différentes vues et boîtes de dialogue de Seer.
La vue principale de Seer ressemble à ceci :

Source/Fonction/Types/Variables/Bibliothèques
Informations sur les variables/registres
Gestionnaire de code.
Points d'arrêt, points de surveillance, points de capture, points d'impression, commandes gdb manuelles et journaux.
Informations sur les cadres de pile.
Informations sur les threads.
Prend en charge le mode de débogage inversé de Gdb.
Lorsque la boîte de dialogue d'ouverture d'exécutable est invoquée, elle ressemble à ceci :

Toute sortie texte de l'exécutable ira dans la console Seer. La saisie de texte pour l'exécutable peut également être effectuée via la console.

Normalement, Seer affiche simplement le code source sous forme d'onglets dans le gestionnaire de code. L'assembleur du programme peut également être affiché sous forme d'onglet.
Sélectionnez "View->Assembly View" et un onglet supplémentaire sera affiché à côté des onglets de code source, montrant l'assembleur en cours d'exécution. Voici un exemple.

Comme pour les onglets de code source, des points d'arrêt peuvent être définis dans l'onglet assembleur. L'instruction courante est mise en surbrillance.
Un double-clic sur les entrées de l'onglet "Breakpoints" et de l'onglet "Stack frames" affichera l'assembleur pour ces adresses.
Il existe des raccourcis clavier "Nexti" et "Stepi", tels que définis par vos paramètres de configuration. Normalement "Ctrl+F5" et "CTRL+F6". L'utilisation de "^F" dans l'onglet assembleur affichera une puissante barre de recherche.
La fonctionnalité assembleur de Seer est nouvelle. N'hésitez pas à suggérer des modifications/fonctionnalités.
Lors de l'examen du contenu de la mémoire brute dans le visualiseur de mémoire, cela ressemble à ceci :
| Mémoire | Désassemblage |
|---|---|
![]() | ![]() |
Lors de l'examen du contenu de tableaux dans le visualiseur de tableaux, cela ressemble à ceci :
| Normal | Spline | Nuage de points |
|---|---|---|
![]() | ![]() | ![]() |
Deux tableaux peuvent être utilisés comme un graphique X-Y. Par exemple, ce simple tableau 'points' forme le contour X-Y d'une forme.
int main() {
int points[] = {50,1,20,91,97,35,2,35,79,91,50,1};
return 0;
}
| Valeurs X | Valeurs Y | Valeurs XY |
|---|---|---|
![]() | ![]() | ![]() |
Lors de l'examen du contenu d'une structure C/C++ ou d'une classe C++ dans le visualiseur de structures, cela ressemble à ceci. Cet exemple montre le contenu de "*this" pour la classe C++ courante dans laquelle Seer se trouve. Tous les membres de structure qui sont des types de base peuvent être modifiés.

Il existe également un Basic Struct Visualizer plus léger, mais qui ne peut pas suivre les pointeurs et ne peut pas être modifié.
Lors de l'examen du contenu de la mémoire brute qui est une image, le visualiseur d'images peut être utilisé.

Envoyez un e-mail à [email protected] pour tout bug ou fonctionnalité. Ou créez une tâche sur ma page de projet GitHub.
C'est un monde merveilleux.