2009-12-10 9 views
34

voglio eseguire il comando molto sempliceStampa di più variabili con un solo comando in GDB

print var1, var2, var3, var4 

in gdb per esaminare i valori delle Vars di volta in volta.

Non voglio usare display perché ingombra la vista.

Come posso fare questo? In questo momento tutto quello che posso fare è:

p var1 
p var2 
p var3 
p var4 
+1

Il suo incredibile 2016 e questo problema è ancora presente. – jww

risposta

26

utilizzare il comando printf. È un po 'complicato, ma dà un buon controllo sulla formattazione. Dalla linea di comando:

(gdb) help printf 
printf "printf format string", arg1, arg2, arg3, ..., argn 
This is useful for formatted output in user-defined commands. 

La stringa di formato è come in C (% d per normali interi formato,% s per zero finale stringhe, ecc).

+0

Grazie a TGV ed Edward –

22

Si può semplicemente fare questo

print {var1,var2,var3,var4} 

Questo farà il lavoro.

+4

Mi sono imbattuto in errori 'gli elementi dell'array devono essere tutti della stessa dimensione'. – pevik

-10

È possibile utilizzare semplicemente lo spazio tra due variabili.

print var1 var2 
+0

Questo non funziona: "(gdb) p questo questo" dà "Un errore di sintassi nell'espressione, vicino a" questo "." – craigster0

13

utilizzare le macro:

Ad esempio per continuare a successivo punto di rottura e di stampa

(gdb) define prm 

comandi Tipo per la definizione di prm. Terminare con una riga che dice solo end.

>continue 
>print var1 
>print var2 
>print var3 
>end 

(gdb) prm 
$5 = 0 
$6 = 10 
$7 = -1 
Problemi correlati