Programação  
 
Conhecimento computador >> Programação >> Programação De Computador Idiomas >> 
Como detectar Stack Overflow
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 .

Anterior :

Próximo : No
  Os artigos relacionados
·Como Aplicar Efeitos Blur para Shadows in Flex 
·Como escrever sinais periódicos em MATLAB 
·Como Hotlink Usando FBML 
·Como configurar módulos em CTS 
·O que é Software UML 
·Como fazer uma variável aleatória Permanente 
·Como chamar a atenção para um novo link em jQuery 
·Como converter um aplicativo WPF para uma biblioteca de…
·O Melhor Sub Versões para Linux 
·Como usar o comando Shape no DataReader de Net 2.0 
  Artigos em destaque
·Como INT em C + + para os números reais 
·Como executar o Fortran Código F no Ubuntu 
·Explicação da Filler em um programa COBOL 
·Como armazenar uma entrada em um vetor 
·Como chamar a atenção para um novo link em jQuery 
·DataColumn Tipos 
·Como remover espaços em branco no final de uma linha d…
·Como redimensionar as colunas DataGrid no Flex 
·Como escrever um C emulador de terminal simples 
·As diferenças de Perl e PHP 
Cop e direita © Conhecimento computador http://ptcomputador.com Todos os Direitos Reservados