I wasn't entirely clear. I started getting the problem I described below, so I reverted my change, and I'm still getting the problem :-(
I had already discovered that gdb also traps this, and the way to map these exception codes into explanations. The trouble is now to find out why this is happening. Pedro, can you send me a cegcc.dll generated by you in private mail so I can rule out some possibilities ? I'm assuming I can use it together with the executables I've published on the project website to get a test case which is known to work correctly. Thanks, Danny On Wed, 2007-04-18 at 01:03 +0100, Pedro Alves wrote: > Danny Backx escreveu: > > This is spooky. > > > > I edited startup.c slightly, recompiled the cegcc.dll . And then, > > apparently, something went wrong. Not a single application built with > > cegcc wants to run any more, the mingw32ce stuff does still work. > > > > > > warning: __init_c__: initted = 1 > > warning: "WCETRACE" not found in registry > > warning: "WCETRACE_DEBUGGER" not found in registry > > gdb: unknown target exception 0x80000002 at 0x0174e718 > > > > Program received signal ?, Unknown signal. > > 0x0174e718 in ?? () > > (gdb) > > > > Has anyone seen this before ? Any clues ? > > > > You are getting a STATUS_DATATYPE_MISALIGNMENT exception: > > $grep 80000002 winbase.h > #define STATUS_DATATYPE_MISALIGNMENT 0x80000002 > > Errr, I should have remembered that gdb catches all the > system exceptions *before* the inferior, so it could be > easier to hack gdb than startup.c. Check out > gdb/win32-nat.c:handle_exception on our svn, or > gdb/gdbserver/win32-low.c:handle_exception on gdb cvs head. > > On ARM, 32bit accesses have to be 32bit aligned. Probably > more of a side effect of what you changed than the FPA > stuff you are after. > Anyway, hard to guess what you broke without seeing your > changes... > > Cheers, > Pedro Alves > > > > Danny > > > > On Fri, 2007-04-13 at 20:15 +0100, Pedro Alves wrote: > >> Danny Backx wrote: > >> > >>> BTW, does anyone know how to trap events like these and get information > >>> on what went wrong ? > >>> > >> > >> SEH is one way. Easier on eVC/MSVC since you have > >> __try/__catch/__finally there. With gcc you have to do it manually. > >> On ARM SEH is table based. Take a look at > >> newlib/libc/sys/wince/crt0.S for an example. > >> Look for "kernel exception handler". Probably easier is to > >> hack newlib/libc/sys/wince/startup.c:_eh_handler to dump the > >> exceptions. That function is the top level handler on cegcc. > >> On mingw32ce there isn't any top level SEH handler installed. > >> > >> Cheers, > >> Pedro Alves > >> > -- Danny Backx ; danny.backx - at - scarlet.be ; http://danny.backx.info
signature.asc
Description: This is a digitally signed message part
------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/
_______________________________________________ Cegcc-devel mailing list Cegcc-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/cegcc-devel