linguagens de programação de computador contam com uma estrutura de dados de pilha de chamada --- alguns fazem sua presença explícita para o programador, enquanto todos contam com uma pilha para o programa de saltos que deve retornar para o local onde o programa original parou depois ter executado algum tipo de sub-rotina. Antes de transferir o controle para o código do usuário , um programa define o tamanho máximo para a pilha de chamadas , entre outras preparações . Por vezes, um programa anula por causa de uma falha de segmentação , o que pode ser causado por uma variedade de factores . Você pode facilmente detectar é um estouro de pilha está na raiz do problema, usando um depurador. Coisas que você precisa 
 código-fonte para o programa 
 Compiler para o programa 
 de nível Fonte depurador com suporte para exibir um rastreamento 
 Mostrar Mais instruções 
 1 
 recompilar o programa que está dando a falha de segmentação para que todos os símbolos de depuração estão ligados a ele. Por exemplo, para um programa em C + + em qualquer sistema operacional GNU com o conjunto de ferramentas , execute: 
 
 " g+ +- g programa program.c -o ", onde a opção 
 
 " - g" instrui o compilador para incluir símbolos de depuração . 
 2 
 Execute o programa até parar devido a uma falha de segmentação . Para o exemplo , execute: 
 
 " programa " 
 3 
 Invocar o depurador no programa logo após a falha de segmentação . Para o exemplo , execute: 
 
 " programa gdb " 
 4 
 Apresentar um rastreamento usando o depurador. Todos os depuradores de nível de fonte têm a capacidade de exibir a cadeia de invocações de função aninhada no momento do acidente programa. Para o nosso " gdb " exemplo, entrar dentro " gdb : " 
 
 " backtrace " 
 5 
 Examine o backtrace por sinais de uma recursão infinita . É um único nome da função repetida mais vezes do que o necessário antes do acidente ? Algumas funções que chamam uns aos outros ( por exemplo , a recursão mútua) muitas vezes antes do acidente ? Se a resposta a qualquer pergunta é "sim", o programa parou por causa de um estouro de pilha . A causa mais provável de estouros de pilha em linguagens de alto nível são incorretamente codificado casos base .