2016-07-01 27 views
6

Mi sono imbattuto nella funzionalità di visualizzazione automatica di gdb, che è piuttosto potente e comoda. Dopo aver chiamatoGDB: Come rimuovere una variabile dal display automatico

(gdb) display/i $pc 
(gdb) display $rax 

i valori guardato vengono visualizzati automaticamente dopo ogni passo:

(gdb) si 
0x0804805e in print_loop_start() 
2: $rax = 0 
1: x/i $pc 
=> 0x804805e <print_loop_start+6>: mov 0x4(%ebp,%eax,4),%ecx 

Ma come posso "unwatch" il valore di $ Rax, se non è più di interesse?

+1

"Usa" non visualizzato "per annullare le richieste di visualizzazione precedentemente apportate." – dbrank0

risposta

10

Gdb aiuto per la visualizzazione dice:

"Utilizzare undisplay per annullare le richieste di visualizzazione fatta in precedenza."

Quindi, se lo fai display a, poi display b, e display c gdb darà i numeri a questa richiesta (che potete vedere attraverso l'emissione di riproduzione senza argomenti). Quindi è possibile utilizzare questi numeri con undisplay.

Esempio:

(gdb) display a 
1: a = 32767 
(gdb) display b 
2: b = 0 
(gdb) display c 
3: c = 0 
(gdb) undisplay 2 
(gdb) step 
6  b = 2; 
1: a = 1 
3: c = 0 

dettagli in gdb documentation.

+1

'Elimina display 1' funziona anche. –