
Seer - eine grafische Benutzeroberfläche für gdb
Seer - eine grafische Benutzeroberfläche für gdb unter Linux. (Ernie Pasveer [email protected])
Dieses Projekt wird aktiv weiterentwickelt. Ziel ist eine einfache, aber ansprechende GUI für gdb.
Bitte melden Sie Fehler oder gewünschte Funktionen per E-Mail 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 die Installation durchführen.
Linux
C++17
gdb mit "mi"-Interpreter (überprüfbar mit: gdb --interpreter=mi)
CMake (3.5.0 oder neuer)
QT6
QT5
Verfügbar über folgende Paketmanager:
$ pamac install seer
$ zypper install seergdb
Flathub-Website. Hier
$ flatpak install flathub io.github.epasveer.seer
Beta-Versionen von Seer. Seer's Release-Seite auf GitHub.
Wichtig: flatpak-spawn --host, erforderlich 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
(empfohlen) Seer kann mit Qt6 gebaut werden, indem Sie den folgenden Anweisungen folgen.
https://github.com/epasveer/seer/wiki/Building-Seer---Qt6
Es kann vorerst weiterhin mit Qt5 gebaut werden, indem Sie den folgenden Anweisungen folgen.
https://github.com/epasveer/seer/wiki/Building-Seer---Qt5
Schauen Sie sich Seer's Wiki-Seite auf GitHub an.
Seer ist dafür gedacht, das zu debuggende Programm einfach von der Kommandozeile aus zu starten. gdb bietet mehrere Methoden zum Debuggen eines Programms. Daher tut Seer dies natürlich auch.
Gehen Sie zum Wiki, um alle Möglichkeiten zum Ausführen von Seer zu sehen.
https://github.com/epasveer/seer/wiki/Starting-Seer
Beispiele der verschiedenen Seer-Ansichten und Dialoge.
Die Hauptansicht von Seer sieht folgendermaßen aus:

Quellcode/Funktionen/Typen/Variablen/Bibliotheken
Variablen-/Register-Informationen
Code-Manager.
Breakpoints, Watchpoints, Catchpoints, Printpoints, manuelle gdb-Befehle und Logs.
Wenn der Dialog zum Öffnen der ausführbaren Datei aufgerufen wird, sieht er folgendermaßen aus:

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

Normalerweise zeigt Seer den Quellcode als Tabs im Code-Manager an. Das Assembler-Programm kann ebenfalls als Tab angezeigt werden.
Wählen Sie „View->Assembly View“ und ein zusätzlicher Tab wird neben den Quellcode-Tabs angezeigt, der die aktuell ausgeführte Assemblierung zeigt. Hier ein Beispiel.

Wie bei den Quellcode-Tabs können Breakpoints im Assembler-Tab gesetzt werden. Die aktuelle Anweisung ist hervorgehoben.
Doppelklick auf Einträge im „Breakpoints“-Tab und im „Stack frames“-Tab zeigt die Assemblierung für diese Adressen.
Es gibt „Nexti“ und „Stepi“-Hotkeys, wie in Ihren Konfigurationseinstellungen festgelegt. Normalerweise „Ctrl+F5“ und „CTRL+F6“. Die Verwendung von „^F“ im Assembler-Tab zeigt eine leistungsstarke Suchleiste.
Die Assembler-Funktion in Seer ist neu. Fühlen Sie sich frei, Änderungen/Funktionen vorzuschlagen.
Wenn Sie den Inhalt des rohen Speichers im Speichervisualisierer betrachten, sieht es folgendermaßen aus:
| Speicher | Disassemblierung |
|---|---|
![]() | ![]() |
Wenn Sie den Inhalt von Arrays im Array-Visualisierer betrachten, sieht es folgendermaßen aus:
| Normal | Spline | Scatter |
|---|---|---|
![]() | ![]() | ![]() |
Zwei Arrays können als X-Y-Diagramm verwendet werden. Zum Beispiel bildet dieses einfache 'points'-Array den X-Y-Umriss 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 Struktur-Visualisierer betrachten, sieht es folgendermaßen aus. Dieses Beispiel zeigt den Inhalt von „*this“ für die aktuelle C++-Klasse, in der sich Seer befindet. Alle Strukturmitglieder, die Basistypen sind, können bearbeitet werden.

Es gibt auch einen Basic Struct Visualizer, der leichter ist, aber keine Zeiger verfolgen kann und nicht bearbeitet werden kann.
Wenn Sie den Inhalt des rohen Speichers betrachten, der ein Bild ist, kann der Bildvisualisierer 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.
Stack-Frame-Informationen.
Thread-Informationen.
Unterstützt Gdb's Reverse Debugging Modus.