Un stack di chiamate è il componente di struttura dei dati di un programma informatico 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 . I sottoprogrammi alla fine concludono il loro compito , e che stack di chiamate tiene traccia di ciò che le subroutine hanno finito e quali sono ancora attivi . Usando il debugger GNU ( GDB ) , è possibile visualizzare lo stack chiamate di 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 non va . Cose che ti serviranno
Computer Linux con installato gdb
Mostra più istruzioni
1
Start " gdb " per il programma che si desidera vedere lo stack di chiamate di . Ad esempio, per avviare il debug del programma di " esempio ", digitare quanto segue al prompt dei comandi di Linux :
gdb esempio
2
Esegui un backtrace sul programma. Viene visualizzato un elenco di 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 di chiamate di funzione attiva . Ognuna è preceduta dal simbolo cancelletto " # " e un numero . È possibile accedere ai propri 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
Elenco di tutte le informazioni contenute in questa cornice . Questo ti dà informazioni circa la subroutine , che può facilitare il test del programma .