X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fapplication.cpp;h=c16c9c4b7c757e3a4312316bb69edb668ef2615e;hp=80a22ab9ebb51faefc8124bc36b13df0c1e54ba7;hb=7ba25e4f0953839d9dd9623ef8d80c57db75364b;hpb=efdec55aec1a137460fa362a381ed1904182bfed diff --git a/pv/application.cpp b/pv/application.cpp index 80a22ab9..c16c9c4b 100644 --- a/pv/application.cpp +++ b/pv/application.cpp @@ -20,7 +20,15 @@ #include "application.hpp" #include "config.h" -#include +#include + +#include + +#ifdef ENABLE_STACKTRACE +#include +#endif + +using std::exception; Application::Application(int &argc, char* argv[]) : QApplication(argc, argv) @@ -35,9 +43,14 @@ bool Application::notify(QObject *receiver, QEvent *event) { try { return QApplication::notify(receiver, event); - } catch (std::exception& e) { - std::cerr << "Caught exception: " << e.what() << std::endl; + } catch (exception& e) { + qDebug().nospace() << "Caught exception of type " << \ + typeid(e).name() << " (" << e.what() << ")"; +#ifdef ENABLE_STACKTRACE + throw e; +#else exit(1); +#endif return false; } }