
Seer - un frontend grafico per gdb
Seer - un'interfaccia grafica frontend per gdb su 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
Versioni beta di Seer. Pagina delle release di Seer su github.
$ snap install seergdb_<versione>.snap --dangerous
(Raccomandato) Seer può essere compilato con Qt6 seguendo le istruzioni qui sotto.
https://github.com/epasveer/seer/wiki/Building-Seer---Qt6
Può ancora essere compilato con Qt5, per il momento, seguendo le istruzioni qui sotto.
https://github.com/epasveer/seer/wiki/Building-Seer---Qt5
Dai un'occhiata alla pagina Wiki di Seer su github.
Seer è pensato per avviare facilmente il programma da debuggare dalla riga di comando. gdb ha più metodi per debuggare un programma. Quindi Seer li ha naturalmente 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 si presenta così:

Sorgente/Funzioni/Tipi/Variabili/Librerie
Informazioni Variabili/Registri
Code Manager.
Breakpoints, Watchpoints, Catchpoints, Printpoints, comandi gdb manuali e log.
Quando viene invocata la finestra di dialogo dell'eseguibile aperto, si presenta così:

Tutto l'output testuale dall'eseguibile andrà alla console di Seer. Anche l'input testuale per l'eseguibile può essere inserito 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 una scheda extra verrà mostrata accanto alle schede del codice sorgente che mostra l'assembly corrente in esecuzione. Ecco un esempio.

Come le schede del codice sorgente, i breakpoint possono essere impostati nella scheda assembly. L'istruzione corrente è evidenziata.
Il doppio clic sulle voci nella scheda "Breakpoints" e nella scheda "Stack frames" mostrerà l'assembly per quegli indirizzi.
Ci sono i tasti rapidi "Nexti" e "Stepi", come definito dalle tue 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 osservano i contenuti della memoria grezza nel Memory Visualizer, si presenta così :
| Memoria | Disassembly |
|---|---|
![]() | ![]() |
Quando si osservano i contenuti degli array nell'Array Visualizer, si presenta così :
| Normale | Spline | Dispersione |
|---|---|---|
![]() | ![]() | ![]() |
Due array possono essere usati come un grafico X-Y. Ad 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;
}
| Valori X | Valori Y | Valori XY |
|---|---|---|
![]() | ![]() | ![]() |
Quando si osservano i contenuti di una struct C/C++ o di una classe C++ nello Struct Visualizer, si presenta così. Questo esempio mostra i contenuti 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 uno Basic Struct Visualizer più leggero, ma che non può seguire i puntatori e non può essere modificato.
Quando si osservano i contenuti della memoria grezza che è un'immagine, può essere usato l'Image Visualizer.

Invia un'email a [email protected] per qualsiasi 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à Reverse Debugging di Gdb.