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 № 1Eu 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.