Lar Desenvolvimento O que é uma pilha de chamadas? - o que é techopedia

O que é uma pilha de chamadas? - o que é techopedia

Índice:

Anonim

Definição - O que significa Call Stack?

Uma pilha de chamadas, em C #, é a lista de nomes de métodos chamados em tempo de execução, desde o início de um programa até a execução da instrução atual.

Uma pilha de chamadas destina-se principalmente a acompanhar o ponto em que cada sub-rotina ativa deve retornar o controle ao concluir a execução. A pilha de chamadas atua como uma ferramenta para depurar um aplicativo quando o método a ser rastreado pode ser chamado em mais de um contexto. Isso forma uma alternativa melhor do que adicionar código de rastreamento a todos os métodos que chamam o método especificado. Sempre que uma exceção é lançada em qualquer lugar do código do usuário, o Common Language Runtime (CLR) desenrola a pilha de chamadas e procura o bloco catch para determinar o tipo de exceção específico. Se não houver um manipulador apropriado, o CLR encerrará o aplicativo. A pilha de chamadas, portanto, é usada para informar ao ponteiro de execução para onde ir.

Techopedia explica Call Stack

A pilha de chamadas é organizada como "pilha", uma estrutura de dados na memória para armazenar itens da maneira "último a entrar, primeiro a sair", para que o responsável pela chamada da sub-rotina empurre o endereço de retorno na pilha e a chamada sub-rotina, após concluir, retira o endereço de retorno da pilha de chamadas para transferir o controle para esse endereço.

No C #, qualquer aplicativo começa com um método "principal", que por sua vez chama outros métodos. Em cada chamada para um método, o método é adicionado à parte superior da pilha e é removido da pilha ao retornar ao chamador. Além disso, o escopo de uma variável declarada em um bloco é determinado a partir do momento em que seu valor é enviado para a pilha (como parte da pilha de chamadas) até a execução sair do bloco quando a variável e a pilha de chamadas são removidas da pilha. Portanto, a pilha mantém as variáveis ​​locais (tipos de valor) e a pilha de chamadas (quadros da pilha), cujo tamanho indica a complexidade de um programa.

Esta definição foi escrita no contexto de C #
O que é uma pilha de chamadas? - o que é techopedia