2011-09-20 24 views

risposta

18

Uno stack di chiamate è in genere "lo stack corrente di operazioni", ovvero mentre è in esecuzione.

Una traccia di stack è in genere una copia dello stack di chiamate che viene registrato in una sorta di errore, ad es. un'eccezione.

In altre parole, mentre esegui il debug, guarderai lo stack di chiamate corrente, ma quando guardi i registri, otterrai una traccia di stack. Almeno, questa è la mia interpretazione dei termini :)

+0

Lo vedo come la traccia dello stack è come il risultato (cercando di pensare a una parola migliore) dei tuoi progressi lungo lo stack delle chiamate? O è sbagliato? – AndrewC

+0

@AndyC: non sono sicuro di capire cosa significhi "avanzamento lungo lo stack di chiamate". –

+0

Hmm, sono potenzialmente in errore quindi (o quello o sono davvero cattivo a spiegare :)). Un po 'come se lo stack di chiamate fosse il percorso che farai attraverso l'applicazione, la traccia dello stack ti mostrerà come hai fatto finora? – AndrewC

9

Lo stack di chiamate è una struttura di dati che memorizza le informazioni sulle subroutine attive in un programma in esecuzione. La traccia di stack è una rappresentazione dello stack di chiamate.

6

Penso Wikipedia fa un lavoro abbastanza buono a distinguere tra di loro:

uno stack di chiamate è una struttura dati pila che memorizza le informazioni sulle subroutine attivi di un programma per computer

Una traccia dello stack è un report dei frame di stack attivi in ​​un determinato momento durante l'esecuzione di un programma.

In altre parole, lo stack di chiamate è la struttura dati effettiva in memoria, mentre la traccia di stack è un'istantanea di detta struttura dati.

+3

+1 per lo "snapshot" – pencilCake

Problemi correlati