[Bug 211123] Throw C++ exception from a signal handler.
bugzilla-noreply at freebsd.org
bugzilla-noreply at freebsd.org
Thu Jul 14 19:01:14 UTC 2016
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=211123
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 at FreeBSD.org
Reporter: cwittmann at infosearchintl.com
Created attachment 172529
--> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=172529&action=edit
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 exception
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 = NULL;
*p += *p;
//raise(SIGINT);
cout << "... no catchie ..." << endl;
}
catch (...)
{
cout << "CAUGHT THE MOFO!" << endl;
}
return 0;
}
--
You are receiving this mail because:
You are the assignee for the bug.
More information about the freebsd-bugs
mailing list