Domanda

Puoi pubblicare i tuoi più difficile e comandi utili, mentre si esegue un debugger come gdb o dbx.

È stato utile?

Soluzione

  1. backtrace completo:Backtrace completo con le variabili locali
  2. fino, giù, telaio:Muoversi attraverso i fotogrammi
  3. guarda:Sospendere il processo quando viene soddisfatta una certa condizione
  4. impostare la stampa bella su:Stampa graziosamente formattato codice sorgente C
  5. impostare la registrazione sul:Log della sessione di debug per mostrare agli altri per il supporto
  6. impostare la stampa la matrice:Piuttosto matrice di stampa
  7. finitura:Proseguire fino alla fine della funzione
  8. attivare e disattivare:Abilitare/disabilitare i punti di interruzione
  9. tbreak:Rompere una volta, e quindi rimuovere il punto di interruzione
  10. dove:Il numero di riga in fase di esecuzione
  11. info locali:Visualizza tutte le variabili locali
  12. info args:Visualizza tutti gli argomenti della funzione
  13. elenco:visualizza sorgente
  14. rbreak:rompere la funzione di ricerca dell'espressione regolare

Altri suggerimenti

Inizia gdb con un'interfaccia utente testuale

gdb -tui

A partire dal gdb 7.0, c'è reversibili debug , così il vostro nuovo preferito comandi sono:

* reverse-continue ('rc') -- Continue program being debugged but run it in reverse
* reverse-finish -- Execute backward until just before the selected stack frame is called
* reverse-next ('rn') -- Step program backward, proceeding through subroutine calls.
* reverse-nexti ('rni') -- Step backward one instruction, but proceed through called subroutines.
* reverse-step ('rs') -- Step program backward until it reaches the beginning of a previous source line
* reverse-stepi -- Step backward exactly one instruction
* set exec-direction (forward/reverse) -- Set direction of execution.

Invece di lanciare GDB con "-tui" param è anche possibile passare alla modalità testo dopo un po 'utilizzando digitando "wh".

thread apply all bt o thread apply all print $pc:. Per scoprire rapidamente che cosa tutte le discussioni stanno facendo

Per esempio le macro definite in STL-views.gdb

Con l'opzione -command=<file with gdb commands> durante la cottura fino gdb. Uguale -x <command file>. Questo file di comando può contenere comandi gdb come punti di interruzione, opzioni, ecc utile nel caso un particolare eseguibile deve essere messo attraverso di debug successivo viene eseguito utilizzando gdb.

scripting gdb è un buon trucco, diverso da quello che mi piace set scheduler bloccaggio on / off per evitare l'esecuzione di altri thread quando si stanno intensificando in uno.

Invece di partire gdb con l'opzione -tui per vedere un processo figlio che contiene uno schermo che mette in evidenza dove la linea esecuzione di codice è nel vostro programma, saltare dentro e fuori di questa funzione con C-x O e C-x a. Ciò è utile se si sta utilizzando la funzione e cosa non temporaneamente usarlo in modo da poter utilizzare la freccia in alto per ottenere un comando precedente.

  • Utilizzo di .gdbinit (start up di file in cui è possibile scrivere macro e chiamare da gdb). Posto .gdbinit nella vostra home directory in modo che viene raccolto ogni volta che viene caricato gdb
  • informazioni discussioni per elencare tutti i thread attivi, e f (#) -> il numero # filo si desidera passare a

  • a volte io uso gdb convertire da esadecimale a decimale o binario, la sua molto utile, invece di aprire un calcolatore

    • p / d 0x10 -> dà equivalente decimale di 0x10
    • p / t 0x10 -> equivalente binario di 0x10
    • p / x 256 -> equivalente esadecimale di 256

Questo può essere utile, io sono sicuro che potrebbe essere migliorata anche se, aiutare benvenuto:

define mallocinfo
  set $__f = fopen("/dev/tty", "w")
  call malloc_info(0, $__f)
  call fclose($__f)

Per eseguire il debug STL, aggiungere contenuti a .gdbinit, seguire le seguenti istruzioni:

http://www.yolinux.com/TUTORIALS/GDB-Commands. html # STLDEREF

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top