Hi there,

I am writing C++ code in Linux (2.6.18) using pthreads. glibc 2.5. gcc 4.1.2

1) I understand that signals SIGFPE and SIGSEGV are sent to individual
threads while SIGINT is sent to the whole process.  How do I find out
what signal is thread specific and what signal is process wide.  How
does the OS/glibc determine which thread should be served the signal?

2) I would like to translate SIGSEGV or SIGFPE to an exception in the
program so that it can be caught at higher levels. Is there a default
option to convert a SIGSEGV to an exception?  For my tests, I provided
a signal handler for SIGSEGV/SIGFPE that throws an int exception and
it works. Is it legal to throw exceptions in signal handlers? Is there
any limitation on what kind of object can be thrown as an exception?
Could someone help me understand the rules in this space?

3) Could someone point me to  a sample to print the stack trace when
an exception occurred?

Thank you.

Sincerely
Sudhakar

Reply via email to