2013-05-20 10 views
13

Come posso controllare il numero di linea corrente in cui sono interrotto quando eseguo il debugging con GDB? Avrei pensato che sarebbe stato ovvio (e forse lo è) ma non lo vedo sullo GDB Cheat Sheet.GDB: Come verificare il numero di linea corrente durante il debug

+0

possibile duplicato di [gdb: come stampare la riga corrente o trovare il numero di linea corrente?] (Http://stackoverflow.com/questions/14581837/gdb-how-to-print-the-current- line-or-find-the-current-line-number) –

risposta

23

Alcuni scavare intorno rivelato i seguenti metodi:

  1. frame: Questo comando è stato esattamente quello che stavo cercando. Uscita sembrava come segue:

    (gdb) frame 
    #0 MyDialog::on_saveButton_clicked (this=0x72bf9e0) at src/ui/dialog/MyDialog.cxx:86 
    86   _item->save(); 
    (gdb) 
    
  2. where o bt (stesso effetto): Questo stampa lo stack di chiamate, che termina sulla linea corrente.

  3. list *$pc: Questo non indica la linea esatta ma stampa le linee circostanti con la linea corrente al centro.
+1

So che parli di GDB ma solo come suggerimento hai provato a usare gdbtui? Ha una buona interfaccia grafica terminale che ti permette di vedere le linee attuali e surround. Puoi anche scorrere verso l'alto usando i tasti direzionali della tastiera. – Nobilis

+0

@Nobilis Grazie per il suggerimento! gdbtui sembra piuttosto dolce! –

Problemi correlati