/ / Como capturar exceções (gcc arm c ++) - c ++, exceção, gcc, arm, marmelada

Como capturar exceções (gcc braço c + +) - c + +, exceção, gcc, braço, marmelada

Eu uso o marmalade sdk e não há suporte paramanipulação de exceções estruturadas. Preciso capturar qualquer exceção (ponteiro nulo, desvio por zero ou qualquer outra coisa) e executar algumas ações antes que o aplicativo caia (envie o relatório de falha). Como posso fazer isso no c ++ nativo no compilador gcc-arm?

Respostas:

0 para resposta № 1

Eu preciso pegar qualquer exceção

Para fazer isso, você pode usar a sintaxe de reticências de catch:

try {
doStuff(); // May throw
}
// catch all exceptions derived from std::exception
catch(const std::exception& ex) {
std::cerr << "Caught exception: "" << ex.what() << """ << std::endl;
}
catch(...) { // catch everything but unkown
}

Verifique também se o seu sistema de construção não suprime exceções e RTTI explicitamente com o -fno-exceptions e -fno-rtti sinalizadores do compilador.


0 para resposta № 2

Eu já perguntei Aqui. Eu tentei com a bandeira enable-exceptions=1 dentro options. Mas isso nunca funcionou para mim. Havia um tópico na Marmalade sobre o tratamento de exceções e foi mencionado lá que o Marmalade não os apoia e foi exigido pela comunidade para incluir isso.