Pergunta

Eu quero conseguir um BackTrace do meu bater aplicativo C ++ Mac no entanto Eu sou novo para o Mac e não tenho certeza a melhor forma de fazê-lo.

Eu encontrei uma pergunta sobre stackoverflow que detalha seu uso: ficando o rastreamento de pilha atual no Mac oS X

No entanto o meu problema é que eu não vejo onde o código está destinado a viver?

  1. Será que vão no main.cpp?
  2. Será que ela vive na parte captura de um tente bloco catch?

Eu poderia fazer com alguns exemplos de código completo, mas estou tendo problemas para encontrá-los.

Foi útil?

Solução

O código referido nas outras necessidades de interrogação para ir onde serão executados após o acidente. Dependendo do que está acontecendo que poderia ser tanto em um bloco catch se uma exceção está sendo jogado, ou em um manipulador de sinal se o programa está falhando por causa de, por exemplo, um erro de falha de seg ou ônibus.

Aqui está um exemplo para a captura de sinais. Ele iria em main ().

static void CatchSignal(int num) {
// code to execute when signal is caught
}

void InstallSignalHandler(const int which[15]) {
     for (int i = 1; i < 15; i++) 
         if (which[i] != 0 && which[i] != SIGABRT)
            signal(which[i],CatchSignal);
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top