Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 14 Jul 2016 19:01:13 +0000
From:      bugzilla-noreply@freebsd.org
To:        freebsd-bugs@FreeBSD.org
Subject:   [Bug 211123] Throw C++ exception from a signal handler.
Message-ID:  <bug-211123-8@https.bugs.freebsd.org/bugzilla/>

next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D211123

            Bug ID: 211123
           Summary: Throw C++ exception from a signal handler.
           Product: Base System
           Version: 9.2-RELEASE
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Many People
          Priority: ---
         Component: kern
          Assignee: freebsd-bugs@FreeBSD.org
          Reporter: cwittmann@infosearchintl.com

Created attachment 172529
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=3D172529&action=
=3Dedit
Throwing C++ exception from a signal handler.

I'm writing a multithreaded C++ server to run on FreeBSD AMD64 so I need to
throw C++ exceptions from within a signal handler.  Windows supports C++
exceptions from as signal handler as expected.  On FreeBSD 10.2, even the
-fnon-call-exceptions switch doesn't do a thing.

Is there a way to build an AMD64 kernel that supports signal-handler except=
ion
throwing?


// Exceptions.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <iostream>
#include <signal.h>


using namespace std;

void handler(int signal)
{
    throw 23;
}


int _tmain(int argc, _TCHAR* argv[])
{
    signal(SIGINT, handler);
    signal(SIGSEGV, handler);

    try
    {
        int* p =3D NULL;
        *p +=3D *p;

        //raise(SIGINT);
        cout << "... no catchie ..." << endl;
    }
    catch (...)
    {
        cout << "CAUGHT THE MOFO!" << endl;
    }

        return 0;
}

--=20
You are receiving this mail because:
You are the assignee for the bug.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-211123-8>