Re: Re: g++ & non-call-exceptions & sigsetjmp

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 24 Mar 2004, Eljay Love-Jensen wrote:

> Hi Devrat,
> 
> I believe it is impossible to throw out of a signal handler.  Or out of any 
> kind of callback (e.g., X11).  Any exception that hits a C-barrier will 
> terminate the application.
> 
> You'll have to figure out a different mechanism to detect the signal 
> condition in your program.  Perhaps by setting a volatile global variable 
> within the signal handler, and checking that global at opportune times in 
> your regular code.
> 
> HTH,
> --Eljay
> 
Hi eljay,
	But guy, I said I compiled that code already with a throw inside 
of the exception handler. The compile command was given as follows:
	g++ test.c -g -Wall -fnon-call-exceptions
What I am looking forward to is this:
	Java generates for example some kind of arithmetic exceptions when 
say "division by zero" happens in the program. Now in C++, such an 
exception cannot be caught in "catch" blocks. Such exceptions
can only be caught inside of signal handlers. 
	So we can just throw from within the signal handler as the program 
i enclosed in the post does & catch it from main (which again the program 
is able to.). 
	The code works fine on my Redhat 8.0 linux box & surely does 
convince me that exceptions can be thrown from signal handlers & still be 
caught elsewhere in the code.
	If you dont mind, plz run the program & see what happens.(under 
g++ with the options -fnon-call-exceptions). I really would like to know 
ur comments after the run.
Thanks,

regards
-- 
Devrat Mittal
M.tech 2nd year
Roll no. 2002301






[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux