lists.zerezo.com
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
***BOGO*** Re: [Mingw-users] Installation trouble with 4.3 Alpha
- Date: Sun, 22 Jun 2008 17:45:23 +0100
- From: "Dave Korn" <dave.korn@xxxxxxxxxx>
- Subject: ***BOGO*** Re: [Mingw-users] Installation trouble with 4.3 Alpha
Aaron W. LaFramboise wrote on 21 June 2008 19:11:
> Presently, the unsatisfactory but serendipitous solution to this issue I
> am pursuing is adding partial SEH support to GCC, then adding special
> annotations to prototypes of functions we'd like to unwind through
> (specifically DispatchMessage()), and allow DW2 exceptions to land at
> these special SEH landing pads.
Right. I was thinking we might end up having to put an SEH handler in
every function that makes a non-local call, but I guess it would be better
limited to functions that call out to chosen win32 api functions.
> One side note: I've discovered that this is definitely invalid. As part
> of the research I've done on this issue, I've found two separate places
> in official Microsoft documentation that states throwing through foreign
> frames is not valid. Additionally, on at least one implementation of
> Windows (older WinCE on Palm), exceptions don't even propagate through
> DispatchMessage()).
>
> As another data point, other DW2 targets do not allow this sort of
> unwinding through foreign frames.
>
> This is in addition to the obvious reason that this is invalid: it
> asynchronously blows away frames that weren't expecting to be blown away.
I was thinking we have to write an unwind handler that walks the DW2
exception chain and the win32 SEH chain in parallel and combines DW2 unwind
with the behaviour of _except_handler3. As long as there's an SEH handler
at every frame where we transition from gcc frames to foreign frames, we
could intercept the windows unwind and do whatever was necessary.
Of course, that's not going to be as simple as I made it sound there.
cheers,
DaveK
--
Can't think of a witty .sigline today....
-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
MinGW-users mailing list
MinGW-users@xxxxxxxxxxxxxxxxxxxxx
You may change your MinGW Account Options or unsubscribe at:
https://lists.sourceforge.net/lists/listinfo/mingw-users