Call Stack

Autore: Lewis Jackson
Data Della Creazione: 8 Maggio 2021
Data Di Aggiornamento: 25 Giugno 2024
Anonim
The Call Stack
Video: The Call Stack

Contenuto

Definizione - Cosa significa Call Stack?

Uno stack di chiamate, in C #, è l'elenco di nomi di metodi chiamati in fase di esecuzione dall'inizio di un programma fino all'esecuzione dell'istruzione corrente.


Uno stack di chiamate ha principalmente lo scopo di tenere traccia del punto in cui ogni subroutine attiva deve restituire il controllo al termine dell'esecuzione. Lo stack di chiamate funge da strumento per il debug di un'applicazione quando il metodo da tracciare può essere chiamato in più di un con. Ciò costituisce un'alternativa migliore dell'aggiunta del codice di traccia a tutti i metodi che chiamano il metodo specificato. Ogni volta che viene generata un'eccezione in qualsiasi punto del codice utente, Common Language Runtime (CLR) svolgerà lo stack di chiamate e cercherà il blocco catch per determinare il tipo di eccezione specifico. Se non esiste un gestore appropriato, CLR terminerà l'applicazione. Lo stack di chiamate, quindi, viene utilizzato per indicare al puntatore di esecuzione dove andare dopo.

Un'introduzione a Microsoft Azure e Microsoft Cloud | In questa guida imparerai cos'è il cloud computing e in che modo Microsoft Azure può aiutarti a migrare e gestire la tua azienda dal cloud.

Techopedia spiega Call Stack

Lo stack di chiamate è organizzato come "stack", una struttura di dati in memoria per l'archiviazione degli elementi in modalità last-in-first-out, in modo che il chiamante della subroutine inserisca l'indirizzo di ritorno nello stack e la subroutine chiamata, dopo aver terminato, estrae l'indirizzo di ritorno dallo stack di chiamate per trasferire il controllo a quell'indirizzo.


In C #, qualsiasi applicazione inizia con un metodo "principale", che a sua volta chiama altri metodi. Ad ogni chiamata a un metodo, il metodo viene aggiunto nella parte superiore dello stack e viene rimosso dallo stack al suo ritorno al chiamante. Inoltre, l'ambito di una variabile dichiarata in un blocco viene determinato dal momento in cui il suo valore viene inserito nello stack (come parte dello stack di chiamate) fino a quando l'esecuzione lascia il blocco quando la variabile e lo stack di chiamate vengono espulsi dallo stack. Pertanto, lo stack mantiene sia le variabili locali (tipi di valore) sia lo stack di chiamate (frame di stack), la cui dimensione indica la complessità di un programma.

Questa definizione è stata scritta nel con di C #