[PATCH 6/6] msvcrt: Fixed RTTI structure on 64-bit systems

Alexandre Julliard julliard at winehq.org
Thu Sep 6 10:05:17 CDT 2012


Piotr Caban <piotr at codeweavers.com> writes:

> ---
>  dlls/msvcrt/cpp.c |  129
> ++++++++++++++++++----------------------------------
>  dlls/msvcrt/cxx.h |  114 +++++++++++++++++++++++++++++++++++++++++++++--
>  2 files changed, 155 insertions(+), 88 deletions(-)

It doesn't work here:

../../../../wine/tools/runtest -q -P wine -M msvcrt.dll -T ../../.. -p msvcrt_test.exe.so ../../../../wine/dlls/msvcrt/tests/cpp.c && touch cpp.ok
cpp.c:405: Test failed: bad rtti for e
wine: Unhandled exception 0xe06d7363 at address 0x7b84a70a (thread 0025), starting debugger...
Unhandled exception: C++ exception(object = 0x0022f870, type = 0x2b780f15a760) in 64-bit code (0x000000007b84a70a).
Register dump:
 rip:000000007b84a70a rsp:000000000022f680 rbp:00002b780f1635f0 eflags:00000202 (   - --  I   - - - )
 rax:000000000022f6c0 rbx:000000000022f6a0 rcx:000000000022f6a0 rdx:0000000000000000
 rsi:000000000022f838 rdi:000000000022f6d8  r8:00002b780f15a760  r9:000000000022f820 r10:2161746164204954
 r11:00002b780d5712b0 r12:000000000022fa90 r13:0000000000013198 r14:000000007b8739b0 r15:00007fffffbe8000
Stack dump:
0x000000000022f680:  000000000022f6a0 ff000000ffffff00
0x000000000022f690:  0000000000000000 0000000000000000
0x000000000022f6a0:  00000001e06d7363 0000000000000000
0x000000000022f6b0:  000000007b84a70a 0000000000000003
0x000000000022f6c0:  0000000019930520 000000000022f870
0x000000000022f6d0:  00002b780f15a760 000000000022f870
0x000000000022f6e0:  000000000022f858 00002b780ef3c000
0x000000000022f6f0:  000000000022f858 0000000000000021
0x000000000022f700:  0000000000013198 000000007b8739b0
0x000000000022f710:  00007fffffbe8000 00002b780eefafdc
0x000000000022f720:  00000002c0000005 0000000000000000
0x000000000022f730:  00002b780d54eb28 00002b780d3224e0
Backtrace:
=>0 0x000000007b84a70a RaiseException+0xba(code=<is not available>, flags=<is not available>, nbargs=<is not available>, args=<is not available>) [/home/julliard/wine/build/obj-elf64/dlls/kernel32/../../../wine/dlls/kernel32/except.c:85] in kernel32 (0x00002b780f1635f0)
  1 0x00002b780eee29c1 _CxxThrowException+0x30(object=<is not available>, type=<is not available>) [/home/julliard/wine/build/obj-elf64/dlls/msvcrt/../../../wine/dlls/msvcrt/cpp.c:1109] in msvcrt (0x00002b780f1635f0)
  2 0x00002b780eee3242 MSVCRT___RTtypeid+0x171(cppobj=0x2b780f1635f0) [/home/julliard/wine/build/obj-elf64/dlls/msvcrt/../../../wine/dlls/msvcrt/cpp.c:901] in msvcrt (0x00002b780f1635f0)
  3 0x00002b780ec60326 func_cpp+0x20c5() [/home/julliard/wine/build/obj-elf64/dlls/msvcrt/tests/../../../../wine/dlls/msvcrt/tests/cpp.c:411] in msvcrt_test (0x00002b780f1635f0)
  4 0x00002b780ec5c82c main+0x28b(argc=<is not available>, argv=<is not available>) [/home/julliard/wine/build/obj-elf64/dlls/msvcrt/tests/../../../../wine/include/wine/test.h:557] in msvcrt_test (0x0000000000000003)
  5 0x00002b780ec8dc42 __wine_spec_exe_entry+0xa1(peb=<is not available>) [/home/julliard/wine/build/obj-elf64/dlls/winecrt0/../../../wine/dlls/winecrt0/exe_entry.c:36] in msvcrt_test (0x00002b780d2f38f0)
  6 0x000000007b873a61 start_process+0xb0(peb=0x7fffffbef000) [/home/julliard/wine/build/obj-elf64/dlls/kernel32/../../../wine/dlls/kernel32/process.c:1052] in kernel32 (0x00002b780ec8dba0)
  7 0x00002b780db5982e call_thread_func+0x6d(entry=0x7b8739b0, arg=0x7fffffbef000, frame=<is not available>) [/home/julliard/wine/build/obj-elf64/dlls/ntdll/../../../wine/dlls/ntdll/signal_x86_64.c:3230] in ntdll (0x00007fff5630f450)
  8 0x00002b780db52f1a call_thread_entry_point+0x29() in ntdll (0x00007fff5630f450)
  9 0x00002b780db24a56 start_process+0x15(kernel_start=<is not available>) [/home/julliard/wine/build/obj-elf64/dlls/ntdll/../../../wine/dlls/ntdll/loader.c:2653] in ntdll (0x00007fff5630f450)
  10 0x00002b780cfcd283 wine_call_on_stack+0x12() in libwine.so.1 (0x00007fff5630f450)
  11 0x00002b780cfcd2d9 wine_switch_to_stack+0x8(func=<is not available>, arg=<is not available>, stack=<is not available>) [/home/julliard/wine/build/obj-elf64/libs/wine/../../../wine/libs/wine/port.c:59] in libwine.so.1 (0x00007fffffbef000)
  12 0x00002b780db2a500 LdrInitializeThunk+0x45f(kernel_start=0x7b8739b0, unknown2=<is not available>, unknown3=<is not available>, unknown4=<is not available>) [/home/julliard/wine/build/obj-elf64/dlls/ntdll/../../../wine/dlls/ntdll/loader.c:2709] in ntdll (0x00007fffffbef000)
  13 0x000000007b879ebd __wine_kernel_init+0x91c() [/home/julliard/wine/build/obj-elf64/dlls/kernel32/../../../wine/dlls/kernel32/process.c:1255] in kernel32 (0x00002b780ddbb800)
  14 0x00002b780db2ad74 __wine_process_init+0x143() [/home/julliard/wine/build/obj-elf64/dlls/ntdll/../../../wine/dlls/ntdll/loader.c:2918] in ntdll (0x00007fff56310700)
  15 0x00002b780cfcb488 wine_init+0x297(argc=0x3, argv=0x7fff56310bf8, error="", error_size=0x400) [/home/julliard/wine/build/obj-elf64/libs/wine/../../../wine/libs/wine/loader.c:831] in libwine.so.1 (0x00007fff56310700)
  16 0x000000007bf00da2 main+0x71(argc=0x3, argv=0x7fff56310bf8) [/home/julliard/wine/build/obj-elf64/loader/../../wine/loader/main.c:230] in <wine-loader> (0x00007fff56310bf8)
  17 0x00002b780d55dead __libc_start_main+0xfc(main=<is not available>, argc=<is not available>, ubp_av=<is not available>, init=<is not available>, fini=<is not available>, rtld_fini=<is not available>, stack_end=0x7fff56310be8) [/home/aurel32/eglibc-sid/eglibc-2.13/csu/libc-start.c:228] in libc.so.6 (0x0000000000000000)
  18 0x000000007bf00e9d _start+0x28() in <wine-loader> (0x0000000000000000)
0x000000007b84a70a RaiseException+0xba [/home/julliard/wine/build/obj-elf64/dlls/kernel32/../../../wine/dlls/kernel32/except.c:85] in kernel32: 	
85	}

-- 
Alexandre Julliard
julliard at winehq.org



More information about the wine-devel mailing list