LibEV and C++ exception pass through

David Imhoff dimhoff_devel at xs4all.nl
Tue Aug 21 16:00:28 CEST 2012


Hi,

I just wanted to share this, because I couldn't find any messages about 
this problem on the list.

When running the below code on a x86 machine, the exception is not 
caught. Instead the program will abort and core dump. On amd64 however 
this code does works as expected.

I found that compiling libev with the '-fexceptions' flag solves this 
issue for GCC.

I don't know how other compilers/platforms deal with this.

Kind regards,

David

>>>
#include <iostream>
#include "ev++.h"

using namespace std;

void throw_except(ev::timer &w, int revents)
{
         throw int(1);
}

int main()
{
         ev::timer timer1;
         timer1.set<throw_except>();
         timer1.start(0, 0);

         try {
                 ev_run(EV_DEFAULT, 0);
         } catch (...) {
                 cout << "caught exception" << endl;
         }

         return 0;
}
<<<




More information about the libev mailing list