
Seer - eine grafische Benutzeroberfläche für gdb
Seer – eine GUI-Oberfläche für gdb unter Linux. (Ernie Pasveer [email protected])
An diesem Projekt wird aktiv gearbeitet. Das Ziel ist eine einfache, aber dennoch ansprechende GUI für gdb.
Bitte melden Sie Fehler oder gewünschte Funktionen per E-Mail an mich oder erstellen Sie eine Aufgabe auf meiner GitHub-Projektseite.
Seer kann entweder über einen Paketmanager oder aus dem Quellcode installiert werden.
[!NOTE] Stellen Sie sicher, dass die Anforderungen erfüllt sind, bevor Sie installieren.
Linux
C++17
gdb mit „mi“-Interpreter (überprüfen durch Ausführen von: gdb --interpreter=mi)
CMake (3.5.0 oder neuer)
QT6
QT5
Verfügbar über die folgenden Paketmanager:
$ pamac install seer
$ zypper install seergdb
Flathub-Website. Hier
$ flatpak install flathub io.github.epasveer.seer
Beta-Versionen von Seer. Seers Release-Seite auf GitHub.
Wichtig: flatpak-spawn --host, benötigt im GDB Launcher, um gdb auszuführen. Siehe https://github.com/epasveer/seer/issues/377#issuecomment-3620844808.
Laden Sie seer.flatpak herunter. Installieren Sie es:
$ flatpak install -y --bundle --user seer.flatpak
Beta-Versionen von Seer. Seers Release-Seite auf GitHub.
$ snap install seergdb_<version>.snap --dangerous
(Empfohlen) Seer kann mit Qt6 erstellt werden, indem Sie den folgenden Anweisungen folgen.
Es kann vorerst weiterhin mit Qt5 erstellt werden, indem Sie den folgenden Anweisungen folgen.
Schauen Sie sich Seers Wiki-Seite auf GitHub an.
Seer soll es ermöglichen, das zu debuggende Programm einfach von der Befehlszeile aus zu starten. gdb bietet mehrere Methoden zum Debuggen eines Programms. Seer tut dies natürlich auch.
Gehen Sie zum Wiki, um alle Möglichkeiten zur Ausführung von Seer zu sehen.
Beispiele für die verschiedenen Seer-Ansichten und Dialoge.
Die Hauptansicht von Seer sieht wie folgt aus:

Quelle/Funktion/Typen/Variablen/Bibliotheken
Variablen-/Register-Informationen
Code-Manager.
Breakpoints, Watchpoints, Catchpoints, Printpoints, manuelle gdb-Befehle und Protokolle.
Stack-Frame-Informationen.
Thread-Informationen.
Unterstützt gdbs Reverse-Debugging-Modus.
Wenn der Dialog zum Öffnen der ausführbaren Datei aufgerufen wird, sieht er wie folgt aus:

Die gesamte Textausgabe der ausführbaren Datei wird an die Seer-Konsole gesendet. Die Texteingabe für die ausführbare Datei kann ebenfalls über die Konsole erfolgen.

Normalerweise zeigt Seer den Quellcode nur als Registerkarten im Code-Manager an. Die Assembly des Programms kann ebenfalls als Registerkarte angezeigt werden.
Wählen Sie „Ansicht->Assembly-Ansicht“ und eine zusätzliche Registerkarte wird neben den Quellcode-Registerkarten angezeigt, die die aktuell ausgeführte Assembly zeigt. Hier ist ein Beispiel.

Wie bei den Quellcode-Registerkarten können in der Assembly-Registerkarte Breakpoints gesetzt werden. Die aktuelle Anweisung wird hervorgehoben.
Ein Doppelklick auf Einträge in der Registerkarte „Breakpoints“ und der Registerkarte „Stack-Frames“ zeigt die Assembly für diese Adressen.
Es gibt „Nexti“- und „Stepi“-Hotkeys, wie in Ihren Konfigurationseinstellungen definiert. Normalerweise „Ctrl+F5“ und „CTRL+F6“. Die Verwendung von „^F“ in der Assembly-Registerkarte zeigt eine leistungsstarke Suchleiste.
Die Assembly-Funktion in Seer ist neu. Fühlen Sie sich frei, Änderungen/Funktionen vorzuschlagen.
Wenn Sie den Inhalt des Rohspeichers im Memory Visualizer betrachten, sieht dies wie folgt aus:
| Speicher | Disassembly |
|---|---|
![]() | ![]() |
Wenn Sie den Inhalt von Arrays im Array Visualizer betrachten, sieht dies wie folgt aus:
| Normal | Spline | Streuung |
|---|---|---|
![]() | ![]() | ![]() |
Zwei Arrays können als X-Y-Diagramm verwendet werden. Beispielsweise bildet dieses einfache 'points'-Array die X-Y-Kontur einer Form.
int main() {
int points[] = {50,1,20,91,97,35,2,35,79,91,50,1};
return 0;
}
| X-Werte | Y-Werte | XY-Werte |
|---|---|---|
![]() | ![]() | ![]() |
Wenn Sie den Inhalt einer C/C++-Struktur oder einer C++-Klasse im Struct Visualizer betrachten, sieht dies wie folgt aus. Dieses Beispiel zeigt den Inhalt von „*this“ für die aktuelle C++-Klasse, in der sich Seer befindet. Alle Strukturmember, die Basistypen sind, können bearbeitet werden.

Es gibt auch einen Basic Struct Visualizer, der leichtergewichtig ist, aber keine Zeiger verfolgen kann und nicht bearbeitet werden kann.
Wenn Sie den Inhalt von Rohspeicher betrachten, der ein Bild ist, kann der Image Visualizer verwendet werden.

Senden Sie eine E-Mail an [email protected] für Fehler oder Funktionen. Oder erstellen Sie eine Aufgabe auf meiner GitHub-Projektseite.
Es ist eine wunderbare Welt.