-
Introduction
- Seer est une interface graphique pour
gdb sous Linux, conçue pour offrir une interface facile à utiliser et visuellement agréable.
- Le projet est en développement actif, et les bugs ou fonctionnalités souhaitées peuvent être signalés par e-mail ou via la page du projet GitHub.
-
Installation
- Seer peut être installé via un gestionnaire de paquets ou depuis les sources.
-
Requirements
- Linux, C++17,
gdb (avec l’interpréteur mi), CMake (3.1.0 ou version supérieure) et QT6 sont requis.
- L’installation du paquet QT6 "devel" est nécessaire.
- QT5 n’est plus pris en charge, et la version 2.3 est le dernier arbre de sources à le supporter.
-
Install from package
- L’installation est possible avec Pamac (Manjaro) et zypper (openSUSE Tumbleweed).
-
NEWS
- Les dernières informations sont disponibles sur la page GitHub Wiki de Seer.
- La v1.17 est la dernière release Qt5, et la prochaine release sera la v2.0 basée sur Qt6.
-
GUI overview
-
Main View
- Fournit des listes de sources, fonctions, types, variables et bibliothèques.
- Affiche les informations sur les variables et les registres.
- Permet de consulter et rechercher les fichiers source dans le gestionnaire de code.
- Permet de gérer les breakpoints, watchpoints, catchpoints et printpoints.
- Fournit les informations sur les stack frames et les threads.
- Prend en charge le mode de débogage inversé de Gdb.
-
Open Dialog
- Décrit l’apparence de la boîte de dialogue lors de l’ouverture d’un exécutable.
-
Seer Console
- Toute la sortie texte de l’exécutable est redirigée vers la console Seer.
-
Assembly View
- Le code assembleur peut être affiché dans des onglets.
- Il s’agit d’une nouvelle fonctionnalité, et les retours ainsi que les suggestions de fonctionnalités sont les bienvenus.
-
Memory Visualizer
- Visualise le contenu brut de la mémoire.
-
Array Visualizer
- Visualise le contenu des tableaux sous forme de tracé X-Y.
-
Struct Visualizer
- Visualise le contenu des structures ou classes C/C++.
-
Image Visualizer
- Visualise le contenu brut de la mémoire sous forme d’image.
-
Starting Seer
- Conçu pour faciliter le lancement du programme à déboguer depuis la ligne de commande.
- Les différentes méthodes d’exécution sont disponibles sur le GitHub Wiki.
-
Support/Contact
- Les bugs ou demandes de fonctionnalités peuvent être transmis par e-mail ou via la page du projet GitHub.
1 commentaires
Commentaires sur Hacker News
Après l’avoir essayé avec Godot et sous Linux, l’interface est complexe mais fonctionnelle. Des erreurs se produisent parfois quand on veut inspecter la valeur d’une variable, ou bien il ne se passe rien. Un double-clic sur une variable ajoute sa valeur actuelle et un horodatage dans un panneau. Gede offre l’interface la plus simple et la plus intuitive ; il a moins de fonctionnalités, mais il fonctionne bien et sans bugs
GDB intègre une interface utilisateur texte (TUI) et elle est facile à utiliser. Elle prend aussi en charge les interactions à la souris
Après avoir essayé plusieurs frontends pour GDB, la TUI reste la meilleure. L’interface peut se casser quand le programme affiche du texte, donc il faut parfois la redessiner avec Ctrl + L. J’ai ajouté
layout srcetset confirm offau fichier de configurationSi l’on se connecte à Linux depuis Windows ou qu’on utilise WSL, on peut faire du débogage distant de processus Linux avec WinDBG/VisualStudio
Il existe une interface Qt pour GDB ainsi que
gdbgui, une interface web. C’est toujours agréable de voir les outils de débogage progresserDDD m’a semblé magique la première fois que je l’ai vu. Il est toujours maintenu
Pour les utilisateurs d’Emacs, GUD offre une excellente intégration de GDB
J’utilise parfois GDB pour enquêter sur des bugs en C ou en Ada, mais ce n’est pas mon activité principale. Je n’investis donc pas de temps dans la mise en place d’un environnement de débogage complexe. J’utilise Emacs et quelques notes d’instructions simples
Quand je faisais du développement C++ sous Linux il y a 10 ans, j’utilisais Qt Creator, et le débogueur intégré (un frontend pour GDB) fonctionnait très bien. Pour C++ et Qt, je ne vois pas de raison d’utiliser autre chose