Onde posso usar chamadas Backtrace no Mac
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?
- Será que vão no main.cpp?
- 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.
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);
}