This has fixed the problem slightly (see message titled "Bug in cxx_frame_handler") - the program now displays:
err:seh:setup_exception stack overflow 592 bytes in thread 000e eip 401c425a esp 40640db0 stack 0x40540000-0x40750000
And then exits.
I still believe there is a problem in dlls/msvcrt/cppexcept.c with the following lines (359-364):
if (!exc_type) /* nested exception, fetch info from original exception */ { rec = msvcrt_get_thread_data()->exc_record; exc_type = (cxx_exception_type *)rec->ExceptionInformation[2]; }
The problem is that msvcrt_get_thead_data()->exc_record returns NULL (probably because there is no nested exception?). Should there just be a check there for a NULL pointer or is it part of a bigger problem?
Rob
On Tuesday 28 October 2003 12:30 am, you wrote:
ChangeSet ID: 9891 CVSROOT: /opt/cvs-commit Module name: wine Changes by: julliard@wine.codeweavers.com 2003/10/27 18:30:55
Modified files: tools/winebuild: relay.c dlls/ntdll : signal_i386.c
Log message: Switch back to the main process stack before calling exception handlers.
Patch: http://cvs.winehq.com/patch.py?id=9891
Old revision New revision Changes Path 1.31 1.32 +27 -28 wine/tools/winebuild/relay.c 1.73 1.74 +297 -165 wine/dlls/ntdll/signal_i386.c