Seer – ein GUI-Frontend für GDB für Linux. (Ernie Pasveer [email protected])
An diesem Projekt wird aktiv gearbeitet. Das Ziel ist eine einfache, aber ansprechende Benutzeroberfläche für GDB.
Bitte melden Sie alle Fehler oder gewünschten Funktionen per E-Mail oder erstellen Sie eine Aufgabe auf meiner GitHub-Projektseite.
Seer kann entweder von einem Paketmanager oder von der Quelle installiert werden.
Notiz
Stellen Sie vor der Installation sicher, dass die Anforderungen erfüllt sind.
Linux
C++17
gdb mit „mi“-Interpreter (überprüfen Sie, indem Sie Folgendes ausführen: gdb --interpreter=mi
)
CMake (3.1.0 oder neuer)
QT6
QT5
Verfügbar über die folgenden Paketmanager:
pamac install seer
zypper install seergdb
(Empfohlen) Seer kann mit Qt6 erstellt werden, indem die folgenden Anweisungen befolgt werden.
https://github.com/epasveer/seer/wiki/Building-Seer---Qt6
Es kann vorerst weiterhin mit Qt5 erstellt werden, indem die folgenden Anweisungen befolgt werden.
https://github.com/epasveer/seer/wiki/Building-Seer---Qt5
Schauen Sie sich die Wiki-Seite von Seer auf Github an.
Beispiele für die verschiedenen Seer-Ansichten und -Dialoge.
Die Hauptansicht für Seer sieht folgendermaßen aus:
Quelle/Funktion/Typen/Variablen/Bibliotheken
Variablen-/Registerinformationen
Code-Manager.
Haltepunkte, Überwachungspunkte, Fangpunkte, Druckpunkte, manuelle GDB-Befehle und Protokolle.
Informationen zum Stapelrahmen.
Thread-Informationen.
Unterstützt den Reverse-Debugging-Modus von Gdb.
Wenn das Dialogfeld „Ausführbare Datei öffnen“ aufgerufen wird, sieht es folgendermaßen aus:
Die gesamte Textausgabe der ausführbaren Datei wird an die Seer-Konsole gesendet. Texteingaben für die ausführbare Datei können auch über die Konsole eingegeben werden.
Normalerweise zeigt Seer den Quellcode nur als Registerkarten im Code-Manager an. Die Zusammenstellung des Programms kann auch als Registerkarte angezeigt werden.
Wählen Sie „Ansicht->Assembly-Ansicht“ und neben den Quellcode-Registerkarten wird eine zusätzliche Registerkarte angezeigt, die die aktuell ausgeführte Assembly zeigt. Hier ist ein Beispiel.
Wie bei den Quellcode-Registerkarten können auch im Assembly-Register Haltepunkte gesetzt werden. Die aktuelle Anweisung wird hervorgehoben.
Durch Doppelklicken auf Einträge in der Registerkarte „Haltepunkte“ und der Registerkarte „Stack-Frames“ wird die Assembly für diese Adressen angezeigt.
Es gibt die Hotkeys „Nexti“ und „Stepi“, wie in Ihren Konfigurationseinstellungen definiert. Normalerweise „Strg+F5“ und „STRG+F6“. Wenn Sie „^F“ auf der Registerkarte „Assembly“ verwenden, wird eine leistungsstarke Suchleiste angezeigt.
Die Montagefunktion in Seer ist neu. Fühlen Sie sich frei, Änderungen/Funktionen vorzuschlagen.
Wenn man sich den Inhalt des Rohspeichers im Memory Visualizer ansieht, sieht es so aus:
Erinnerung | Demontage |
---|---|
Wenn man sich den Inhalt von Arrays im Array Visualizer ansieht, sieht es so aus:
Normal | Spline | Streuen |
---|---|---|
Zwei Arrays können als XY-Plot verwendet werden. Dieses einfache „Punkte“-Array bildet beispielsweise den XY-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 man sich den Inhalt einer C/C++-Struktur oder einer C++-Klasse im Struct Visualizer ansieht, sieht es so 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 keinen Zeigern folgen und nicht bearbeitet werden kann.
Beim Betrachten des Inhalts des Rohspeichers, bei dem es sich um ein Bild handelt, kann der Image Visualizer verwendet werden.
Seer soll das Programm zum Debuggen einfach über die Befehlszeile starten. gdb verfügt über mehrere Methoden zum Debuggen eines Programms. Das tut Seer natürlich auch.
Besuchen Sie das Wiki, um alle Möglichkeiten zum Ausführen von Seer zu sehen.
https://github.com/epasveer/seer/wiki/Starting-Seer
Senden Sie eine E-Mail an [email protected], wenn Sie Fehler oder Funktionen haben. Oder erstellen Sie eine Aufgabe auf meiner GitHub-Projektseite.