catching Exceptions thrown from within a DLL (egcs,NT,C++,b20.1)

Eric Youngblut yngblut@cs.washington.edu
Thu Feb 17 14:59:00 GMT 2000


I was able to hack up a solution that allowed me to catch a C++
exception thrown from inside a DLL.  I put my technique up on the web:
http://www.cs.washington.edu/homes/yngblut/ehtest/

I hope other people find this useful.

Eric Youngblut
yngblut@cs.washington.edu

PS  Thanks to all of the Cygwin and Mingw32 developers!  I appreciate
    your work tremendously.



Mumit Khan <khan@xraylith.wisc.EDU> wrote:
>
>Paul Henshaw <paul.henshaw@jrc.it> writes:
>> Dear All,
>> 
>> 	having managed now to build and link against a DLL, I have
>> 	encountered a problem with exception handling.
>> 
>> 	I have a test program which deliberately provokes an exception,
>> 	expecting to catch it, and throw it to it's caller.
>> 
>> 	When I run the DLLed version of this program, the exception
>> 	is constructed and displayed correctly, but the caller does
>> 	not catch the exception, and my SIGABORT handler is called.
>
>This is a problem that's been there since the beginning, and will be
>there for a while to come, sorry. Nobody is actively working on this
>part, at least publicly.
>
>The long term solution is rewrite the C++ exception mechanism for
>windows32 ports using SEH.
>
>> 	So is there is some magic incantation to chant over DLLs
>> 	to make exceptions work, or am I just being stupid (again)?
>
>I'll be grateful if someone does find a workaround for this issue.
>
>btw, the problem shows up on other platforms as well -- such as HPUX
>-- where exceptions thrown by shared libraries can't be caught. Not
>always an easy problem to solve, especially on window32, which GCC
>hackers just don't have much of an incentive to work on.
>
>Regards,
>Mumit

--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe@sourceware.cygnus.com



More information about the Cygwin mailing list