
Seer - un frontend grafico per gdb
Seer - un frontend GUI per gdb per Linux. (Ernie Pasveer [email protected])
Questo progetto è attivamente sviluppato. L'obiettivo è un'interfaccia grafica semplice ma piacevole per gdb.
Segnala eventuali bug o funzionalità desiderate alla mia email o crea un task nella mia pagina del progetto GitHub.
Seer può essere installato tramite un gestore di pacchetti o dal sorgente.
[!NOTE] Assicurati che i requisiti siano soddisfatti prima di installare.
Linux
C++17
gdb con interprete "mi" (verifica eseguendo: gdb --interpreter=mi)
CMake (3.5.0 o successivo)
QT6
QT5
Disponibile tramite i seguenti gestori di pacchetti:
$ pamac install seer
$ zypper install seergdb
Sito web Flathub. Qui
$ flatpak install flathub io.github.epasveer.seer
Versioni beta di Seer. Pagina delle release di Seer su GitHub.
Importante: flatpak-spawn --host, necessario in GDB Launcher per eseguire gdb. Vedi https://github.com/epasveer/seer/issues/377#issuecomment-3620844808.
Scarica seer.flatpak. Installalo:
$ flatpak install -y --bundle --user seer.flatpak
(Consigliato) Seer può essere compilato con Qt6 seguendo le istruzioni sotto.
https://github.com/epasveer/seer/wiki/Building-Seer---Qt6
Può ancora essere compilato con Qt5, per il momento, seguendo le istruzioni sotto.
https://github.com/epasveer/seer/wiki/Building-Seer---Qt5
Dai un'occhiata alla pagina Wiki di Seer su GitHub.
Seer è progettato per avviare facilmente il programma da debuggare dalla riga di comando. gdb ha molteplici metodi per debuggare un programma. Quindi Seer naturalmente li ha anche lui.
Vai alla Wiki per vedere tutti i modi per eseguire Seer.
https://github.com/epasveer/seer/wiki/Starting-Seer
Esempi delle varie viste e finestre di dialogo di Seer.
La vista principale di Seer appare così:

Sorgente/Funzione/Tipi/Variabili/Librerie
Informazioni su Variabili/Registri
Code Manager.
Breakpoint, Watchpoint, Catchpoint, Printpoint, comandi gdb manuali e log.
Quando viene invocata la finestra di dialogo per aprire l'eseguibile, appare così:

Tutto l'output di testo dall'eseguibile andrà alla console Seer. L'input di testo per l'eseguibile può essere inserito anche tramite la console.

Normalmente Seer mostrerà solo il codice sorgente come schede nel Code Manager. L'assembly del programma può essere mostrato anche come scheda.
Seleziona "View->Assembly View" e verrà mostrata una scheda aggiuntiva accanto alle schede del codice sorgente che mostra l'assembly corrente in esecuzione. Ecco un esempio.

Come per le schede del codice sorgente, i breakpoint possono essere impostati nella scheda assembly. L'istruzione corrente è evidenziata.
Facendo doppio clic sulle voci nella scheda "Breakpoints" e nella scheda "Stack frames" verrà mostrato l'assembly per quegli indirizzi.
Ci sono i tasti rapidi "Nexti" e "Stepi", come definito dalle impostazioni di configurazione. Normalmente "Ctrl+F5" e "CTRL+F6". Usando "^F" nella scheda assembly verrà mostrata una potente barra di ricerca.
La funzionalità assembly in Seer è nuova. Sentiti libero di suggerire modifiche/funzionalità.
Quando si esamina il contenuto della memoria grezza nel Memory Visualizer, appare così:
| Memory | Disassembly |
|---|---|
![]() | ![]() |
Quando si esamina il contenuto degli array nell'Array Visualizer, appare così:
| Normal | Spline | Scatter |
|---|---|---|
![]() | ![]() | ![]() |
Due array possono essere usati come un grafico X-Y. Per esempio, questo semplice array 'points' forma il contorno X-Y di una forma.
int main() {
int points[] = {50,1,20,91,97,35,2,35,79,91,50,1};
return 0;
}
| X values | Y values | XY Values |
|---|---|---|
![]() | ![]() | ![]() |
Quando si esamina il contenuto di una struct C/C++ o di una classe C++ nel Struct Visualizer, appare così. Questo esempio mostra il contenuto di "*this" per la classe C++ corrente in cui si trova Seer. Tutti i membri della struttura che sono tipi base possono essere modificati.

C'è anche un Basic Struct Visualizer più leggero, ma che non può seguire i puntatori e non può essere modificato.
Quando si esamina il contenuto di memoria grezza che è un'immagine, è possibile utilizzare l'Image Visualizer.

Invia un'email a [email protected] per eventuali bug o funzionalità. Oppure crea un task nella mia pagina del progetto GitHub.
È un mondo meraviglioso.
Informazioni sullo stack frame.
Informazioni sui thread.
Supporta la modalità di Reverse Debugging di Gdb.