John,

thanks for the quick reply. Please see below.

> Nicolas Michael wrote:
> > Hi,
> >
> > when running our c++ application on Intel's Xeon
> 5570 processors with the latest Solaris 10 Update 7
> (141415-10), we're having problems with exceptions
> not being caught properly when running 64bit
> processes. After some analysis, it seems that if an
> exception is thrown in a shared library "B" which was
> loaded through dlopen() and has its exception handler
> in its parent library "A", the exception handler is
> sometimes "ignored" (not found on the stack or
> whatever...), so the exception runs "all the way
> through" and causes the process to crash due to an
> uncaught exception. 
> >
> >   
> What kind of exception?  There are exceptions that
> cannot be caught.
> We should rule out this possibility when running your
> code on x64.

Those exceptions are exceptions that we are throwing ourselves.

Within library B, one method b1() cannot find some data it is looking for, so 
it is creating an exception object (a subclass of our own Exception base class) 
and throwing it. This exception is then caught in method b2() of the same lib, 
which is throwing it again. It should then be caught by an exception handler in 
lib A -- which it seems is not happening.

Thanks,
Nick.
-- 
This message posted from opensolaris.org
_______________________________________________
opensolaris-discuss mailing list
[email protected]

Reply via email to