Come Vedere lo stack di chiamate in GDB

July 28

Uno stack di chiamate è il componente struttura dei dati di un programma per computer che tiene traccia di tutte le subroutine in esecuzione. Una subroutine è una porzione di un pezzo più grande di software che esegue un compito altamente specializzato. Le subroutine alla fine concludono il loro compito, e che stack di chiamate tiene traccia di ciò che hanno finito di subroutine e quali sono ancora attivi. Utilizzando il Debugger GNU (GDB), è possibile visualizzare lo stack di chiamate per un programma in esecuzione. Questo è utile per quando il programma ha un bug, ed è necessario sondare più a fondo l'ambiente di runtime per vedere cosa c'è di sbagliato.

istruzione

1 Start "gdb" per il programma che si desidera vedere lo stack di chiamate di. Ad esempio, per avviare il debug il programma "esempio" è necessario digitare quanto segue nel prompt dei comandi di Linux:

esempio gdb

2 Eseguire un backtrace sul programma. Questo visualizza un elenco delle chiamate di funzione attivi nel thread programma. Questo è lo stack di chiamate, ma c'è di più si può fare non solo vederlo. Digitare quanto segue per avviare il backtrace:

backtrace

3 Osservare l'elenco delle chiamate di funzione attivi. Ognuno è preceduto dal cancelletto "#" e un numero. È possibile accedere ai loro stack frame attraverso questo numero.

4 Osservare lo stack frame di una chiamata di funzione attiva. Ad esempio, per visualizzare lo stack frame per la funzione di chiamata 3, scrivere il seguente:

frame 3

5 Elencare tutte le informazioni contenute in questa cornice. Questo ti dà informazioni sulla subroutine, che può aiutare il test del programma.