
Seer - a gui frontend to 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 email ou créer une tâche sur ma page de projet GitHub.
Seer peut être installé via un gestionnaire de paquets ou depuis les sources.
[!NOTE] Assurez-vous que les exigences sont remplies 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 de Flathub. Ici
$ flatpak install flathub io.github.epasveer.seer
Versions bêta de Seer. Page de version 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
(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 l'instant, en suivant les instructions ci-dessous.
https://github.com/epasveer/seer/wiki/Building-Seer---Qt5
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 plusieurs méthodes pour déboguer un programme. Seer en propose donc naturellement aussi.
Allez sur le Wiki pour voir toutes les façons d'exécuter Seer.
https://github.com/epasveer/seer/wiki/Starting-Seer
Exemples des différentes vues et boîtes de dialogue de Seer.
La vue principale de Seer ressemble à ceci :

Sources/Fonctions/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.
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 se faire via la console.

Normalement, Seer affiche 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 « Affichage -> Vue Assembleur » 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 les onglets de code source, des points d'arrêt peuvent être définis dans l'onglet assembleur. L'instruction courante est surlignée.
Double-cliquer sur les entrées de l'onglet « Points d'arrêt » et de l'onglet « Frames de pile » affichera l'assembleur pour ces adresses.
Il existe des touches de raccourci « Nexti » et « Stepi », telles que définies par vos paramètres de configuration. Normalement « Ctrl+F5 » et « CTRL+F6 ». Utiliser « ^F » dans l'onglet assembleur affichera une barre de recherche puissante.
La fonctionnalité assembleur dans Seer est nouvelle. N'hésitez pas à suggérer des modifications/fonctionnalités.
Lorsque l'on examine le contenu de la mémoire brute dans le visualiseur mémoire, cela ressemble à ceci :
| Mémoire | Désassemblage |
|---|---|
![]() | ![]() |
Lorsque l'on examine le contenu des tableaux dans le visualiseur de tableaux, cela ressemble à ceci :
| Normal | Spline | Dispersion |
|---|---|---|
![]() | ![]() | ![]() |
Deux tableaux peuvent être utilisés comme un tracé 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 |
|---|---|---|
![]() | ![]() | ![]() |
Lorsque l'on examine le 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 Visualiseur de structures basique plus léger, mais qui ne peut pas suivre les pointeurs et ne peut pas être modifié.
Lorsque l'on examine le contenu d'une mémoire brute qui est une image, le visualiseur d'images peut être utilisé.

Envoyez un email à [email protected] pour tout bug ou fonctionnalité. Ou créez une tâche sur ma page de projet GitHub.
C'est un monde merveilleux.
Informations sur la pile d'appels.
Informations sur les threads.
Prend en charge le mode de débogage inversé de Gdb.