This is the mail archive of the java@gcc.gnu.org mailing list for the Java project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Reminder: Illegal Package-Private Accesses in libgcj


I havn't added any support for using backtrace() or platform-specific unwinding code at this time. Ideally win32 will switch to using the DWARF2 unwinder. It doesn't look like there is much missing - libffi unwind information, and an MD_FALLBACK_FRAME_STATE_FOR or equivalent? If there are targets that will never support the unwinder (are there?), then it might make sense to allow platforms to define some platform-specific unwinding functions, but ideally, by far the cleanest and most efficient solution is to get the libgcc DWARF2 unwinder working.

GCC on Win32 (MinGW, and perhaps Cygwin) used DW2 EH till sometime back and had to switch to SJLJ because of a glitch - when an exception is thrown from a GUI callback function, the program used to abort, even though there was an enclosing try/catch block around the message-processing event loop.

The problem was that the callback was called
from within Win32 OS/system-lib code that
of course didn't have any EH frame information
causing the libgcc unwinder to abort the program.

The fix probably would have been to write
a (perhaps complicated) MD_FALLBACK_FRAME_STATE_FOR
for this and other such scenarios.

The problematic code idiom seems to be common
for Win32 GUI programs in C++, making DW2
useless for MinGW for the time being.

Ranjit.

_________________________________________________________________
Pinjar is a classic! Check out the making of this film. http://server1.msn.co.in/sp03/Pinjar/index.asp Simply click here!



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]