2012-02-13 12 views
31

Supponiamo cheCome posso tornare indietro nella finestra dei comandi di GDB in modalità TUI?

(gdb) print *this 

portato a 20 linee di uscita. Sì, ci sarebbe Type <return> to continue, or q <return> to quit, ma vorrei tornare in cima dopo essere arrivato in fondo all'output.

Non penso che http://sourceware.org/gdb/onlinedocs/gdb/TUI-Keys.html risponda alla mia domanda. Essa afferma

<PgUp>
Scorrere la finestra attiva una pagina in alto.

ma quando lo stato attivo è sulla finestra di comando, PgUp riavvolge la cronologia dei comandi, invece di scorrere indietro nella finestra di comando. Sono solo io che soffro di questo comportamento? (. Se questo fa alcuna differenza)

sto usando Putty al fine di SSH per RHEL

risposta

19

One modo di vedere la storia uscita GDB nella modalità TUI è attivare la registrazione:

set trace-commands on 
set logging on 

e quindi la coda del log in un'altra shell:

cd where/gdb/is/running 
tail -f gdb.txt 

Questo ha il vantaggio di separare lo scorrimento dall'interazione del comando, quindi è possibile digitare i comandi mentre si visualizza una sezione passata dell'output GDB.

Nessuno dei tasti di scorrimento funziona nella finestra CMD, pertanto GDB consuma e distrugge in modo efficace il proprio output. L'uscita dalla modalità TUI mi consente di scorrere verso l'alto, ma l'uscita che si è verificata in modalità TUI non è presente: la finestra non-TUI mostra solo il nuovo output generato dopo l'uscita dalla modalità TUI. Finora log and tail è l'unica soluzione che riesco a trovare.


Edit: se si attiva la registrazione GDB (via set logging on) prima di passare alla modalità di TUI, è possibile che la registrazione si ferma entrando TUI (si tratta di un bug in GDB).È possibile attivare di nuovo su:

set logging off 
set logging on 
35

ho trovato una risposta qui: http://beej.us/guide/bggdb/

Si noti che quando la finestra è attiva SRC, il i tasti freccia spostano il codice sorgente, ma quando la finestra CMD è attiva, i tasti freccia selezionano i comandi precedenti e successivi nella cronologia dei comandi. (Per la cronaca, i comandi per spostare le linee singole finestre SRC e pagine singole sono +, -, <, e>.)

C'è anche una sessione di esempio che illustra questo:

(gdb) info win 
     SRC  (36 lines) <has focus> 
     CMD  (18 lines) 
(gdb) fs next 
Focus set to CMD window. 
(gdb) info win 
     SRC  (36 lines) 
     CMD  (18 lines) <has focus> 
(gdb) fs SRC 
Focus set to SRC window. 
(gdb) 
+9

invece di 'fs next' si può anche mettere a fuoco con' ctrl + xo' come indicato [nella documentazione] (http://sourceware.org/gdb/onlinedocs/gdb/TUI-Keys.html). – stefanct

+10

@ hlin117, ancora non so come scorrere la finestra di cmd da questa risposta –

4

Si può provare Ctrl + p per precedente comando e Ctrl + n per comando successivo (quando si è utilizzato Ctrl + p per tornare ai comandi precedenti :)

Problemi correlati