winedbg's bt all seems broken since sometime between 1.1.40 and now. Has anybody else seen this?
On 07/04/10 06:39, Dan Kegel wrote:
winedbg's bt all seems broken since sometime between 1.1.40 and now. Has anybody else seen this?
If I start a program under debugger control with "./wine winedbg ~/test/my.exe" then I see errors such as "Can't get context for thread 0021 in current process" or backtraces like this:
Backtrace: =>0 0xf773d42e uni2cp_low+0x576e() in libwine.so.1 (0x0033f7a8)
Backtrace: =>0 0xf773d42e uni2cp_low+0x576e() in libwine.so.1 (0x0033f7a8) 0xf771d42e: jmp 0xf771d423
If a program crashes and invokes the debugger (which I have modified to execute "bt all" instead of "bt" by default), I get a full set of backtraces.
I have also been seeing "err:dbghelp_msc:pe_load_debug_directory Got a page fault while loading symbols" on executables and matching PDB files generated by the Intel Compiler. It seems that MSVC generated executables and PDBs work fine. That problem has been around for quite a while, certainly before 1.1.40
On 09/04/10 19:10, Peter Urbanec wrote:
On 07/04/10 06:39, Dan Kegel wrote:
winedbg's bt all seems broken since sometime between 1.1.40 and now. Has anybody else seen this?
If I start a program under debugger control with "./wine winedbg ~/test/my.exe" then I see errors such as "Can't get context for thread 0021 in current process" or backtraces like this:
Backtrace: =>0 0xf773d42e uni2cp_low+0x576e() in libwine.so.1 (0x0033f7a8)
Backtrace: =>0 0xf773d42e uni2cp_low+0x576e() in libwine.so.1 (0x0033f7a8) 0xf771d42e: jmp 0xf771d423
If a program crashes and invokes the debugger (which I have modified to execute "bt all" instead of "bt" by default), I get a full set of backtraces.
I am now getting bad "bt all" even with the debugger being invoked from a crash. I see this:
Backtrace: =>0 0xf770c42e cp2uni+0x4b8e() in libwine.so.1 (0x0033f7a8)
for every thread in the program that crashed.
Tested with wine 1.1.43, plus all commits up to about 4 hours ago.
Dan,
Are you still seeing this problem? Any ideas as to what may have caused it?
Cheers,
Peter Urbanec
On 23 April 2010 12:51, Peter Urbanec winehq.org@urbanec.net wrote:
On 09/04/10 19:10, Peter Urbanec wrote:
On 07/04/10 06:39, Dan Kegel wrote:
winedbg's bt all seems broken since sometime between 1.1.40 and now. Has anybody else seen this?
If I start a program under debugger control with "./wine winedbg ~/test/my.exe" then I see errors such as "Can't get context for thread 0021 in current process" or backtraces like this:
Backtrace: =>0 0xf773d42e uni2cp_low+0x576e() in libwine.so.1 (0x0033f7a8)
Backtrace: =>0 0xf773d42e uni2cp_low+0x576e() in libwine.so.1 (0x0033f7a8) 0xf771d42e: jmp 0xf771d423
If a program crashes and invokes the debugger (which I have modified to execute "bt all" instead of "bt" by default), I get a full set of backtraces.
I am now getting bad "bt all" even with the debugger being invoked from a crash. I see this:
Backtrace: =>0 0xf770c42e cp2uni+0x4b8e() in libwine.so.1 (0x0033f7a8)
for every thread in the program that crashed.
Tested with wine 1.1.43, plus all commits up to about 4 hours ago.
Dan,
Are you still seeing this problem? Any ideas as to what may have caused it?
Does "git bisect" help to identify the problem commit(s)?
- Reece
I did a git bisect to test the "bt all" issue and narrowed down the issue:
d29c6ead9280a174fa07ec7d5cd07293c3f7832d is the first bad commit commit d29c6ead9280a174fa07ec7d5cd07293c3f7832d Author: Eric Pouech eric.pouech@orange.fr Date: Tue Mar 30 21:37:01 2010 +0200
winedbg: Store the CONTEXT in each stack frame to enable register access in the non topmost frames.
I used the multithreaded test program from bug 20617 http://bugs.winehq.org/show_bug.cgi?id=20617 to test this problem.
This is what a failure looks like: $ ./wine winedbg MultipleThreads.exe ... Wine-dbg>bt all ... Backtracing for thread 0020 in process 0018 (Z:\MultipleThreads.exe): Backtrace: =>0 0xf77fd42e (0x0033f7a8) 1 0x00190050 (0x0018004f)
Backtracing for thread 001f in process 0018 (Z:\MultipleThreads.exe): Backtrace: =>0 0xf77fd42e (0x0033f7a8) 1 0x00190050 (0x0018004f)
Backtracing for thread 001e in process 0018 (Z:\MultipleThreads.exe): Backtrace: =>0 0xf77fd42e (0x0033f7a8) 1 0x00190050 (0x0018004f)
Backtracing for thread 0019 in process 0018 (Z:\MultipleThreads.exe): Backtrace: =>0 0xf77fd42e (0x0033f7a8) 1 0x00190050 (0x0018004f) 0xf776b42e: jmp 0xf776b423 ...
A proper backtrace should look something like this: ... Backtracing for thread 002e in process 0028 (Z:\U_Drive\Projects\WineDbg_TestCases\Release\MultipleThreads.exe): Backtrace: =>0 0xf7711430 (0x0081ea04) 1 0x7ee155f4 SleepEx+0x2a(timeout=0x00c8, alertable=0) [/source/wine/dlls/kernel32/sync.c:108] in kernel32 (0x0081ea34) 2 0x7ee155c0 Sleep+0x25(timeout=0x00c8) [/source/wine/dlls/kernel32/sync.c:97] in kernel32 (0x0081ea54) 3 0x0040103a Boom::crash_func+0x3a(void_ptr=0x33fdb0) [u:\projects\winedbg_testcases\multiplethreads\multiplethreads.cpp:25] in multiplethreads (0x0081ea68) 4 0x7efbad44 call_thread_func+0xc() in ntdll (0x0081ea78) 5 0x7efbad82 call_thread_entry_point+0x34(entry=0x401000, arg=0x33fdb0) [/source/wine/dlls/ntdll/signal_i386.c:2457] in ntdll (0x0081eb58) 6 0x7efc19ea RtlCreateUserThread(process=0x33fdb0, descr=(nil), suspended=10, stack_addr=0x0(nil), stack_reserve=0x81eb7c, stack_commit=0x81ef7c, start=(nil), param=0x0(nil), handle_ptr=(nil), id=(nil)) [/source/wine/dlls/ntdll/thread.c:411] in ntdll (0x0081f398) 7 0xf756f92f start_thread+0xbf() in libpthread.so.0 (0x0081f498)
Backtracing for thread 002d in process 0028 (Z:\U_Drive\Projects\WineDbg_TestCases\Release\MultipleThreads.exe): Backtrace: =>0 0xf7711430 (0x0071ea04) 1 0x7ee155f4 SleepEx+0x2a(timeout=0x00c8, alertable=0) [/source/wine/dlls/kernel32/sync.c:108] in kernel32 (0x0071ea34) 2 0x7ee155c0 Sleep+0x25(timeout=0x00c8) [/source/wine/dlls/kernel32/sync.c:97] in kernel32 (0x0071ea54) 3 0x0040103a Boom::crash_func+0x3a(void_ptr=0x33fda4) [u:\projects\winedbg_testcases\multiplethreads\multiplethreads.cpp:25] in multiplethreads (0x0071ea68) 4 0x7efbad44 call_thread_func+0xc() in ntdll (0x0071ea78) 5 0x7efbad82 call_thread_entry_point+0x34(entry=0x401000, arg=0x33fda4) [/source/wine/dlls/ntdll/signal_i386.c:2457] in ntdll (0x0071eb58) 6 0x7efc19ea RtlCreateUserThread(process=0x33fda4, descr=(nil), suspended=10, stack_addr=0x0(nil), stack_reserve=0x71eb7c, stack_commit=0x71ef7c, start=(nil), param=0x0(nil), handle_ptr=(nil), id=(nil)) [/source/wine/dlls/ntdll/thread.c:411] in ntdll (0x0071f398) 7 0xf756f92f start_thread+0xbf() in libpthread.so.0 (0x0071f498)
Backtracing for thread 002c in process 0028 (Z:\U_Drive\Projects\WineDbg_TestCases\Release\MultipleThreads.exe): Backtrace: =>0 0x0040105b Boom::crash_func+0x5b(void_ptr=0x33fd98) [u:\projects\winedbg_testcases\multiplethreads\multiplethreads.cpp:29] in multiplethreads (0x0061ea68) 1 0x7efbad44 call_thread_func+0xc() in ntdll (0x0061ea78) 2 0x7efbad82 call_thread_entry_point+0x34(entry=0x401000, arg=0x33fd98) [/source/wine/dlls/ntdll/signal_i386.c:2457] in ntdll (0x0061eb58) 3 0x7efc19ea RtlCreateUserThread(process=0x33fd98, descr=(nil), suspended=0, stack_addr=0x0(nil), stack_reserve=0x61eb7c, stack_commit=0x61ef7c, start=(nil), param=0x0(nil), handle_ptr=(nil), id=(nil)) [/source/wine/dlls/ntdll/thread.c:411] in ntdll (0x0061f398) 4 0xf756f92f start_thread+0xbf() in libpthread.so.0 (0x0061f498)
Backtracing for thread 0029 in process 0028 (Z:\U_Drive\Projects\WineDbg_TestCases\Release\MultipleThreads.exe): Backtrace: =>0 0xf7711430 (0x0033fcfc) 1 0x7ee155f4 SleepEx+0x2a(timeout=0x00f0, alertable=0) [/source/wine/dlls/kernel32/sync.c:108] in kernel32 (0x0033fd2c) 2 0x7ee155c0 Sleep+0x25(timeout=0x00f0) [/source/wine/dlls/kernel32/sync.c:97] in kernel32 (0x0033fd4c) 3 0x0040103a Boom::crash_func+0x3a(void_ptr=0x33fd8c) [u:\projects\winedbg_testcases\multiplethreads\multiplethreads.cpp:25] in multiplethreads (0x0033fd60) 4 0x0040112e main+0xae(argc=0x0001, argv=0x40c338) [u:\projects\winedbg_testcases\multiplethreads\multiplethreads.cpp:65] in multiplethreads (0x0033fdbc) 5 0x0040139c mainCRTStartup+0x173() [f:\vs70builds\6030\vc\crtbld\crt\src\crt0.c:259] in multiplethreads (0x0033fe98) 6 0x7ee05b3c start_process+0x137(peb=0x7ffdf000) [/source/wine/dlls/kernel32/process.c:988] in kernel32 (0x0033fed8) 7 0x7efbad44 call_thread_func+0xc() in ntdll (0x0033fee8) 8 0x7efbad82 call_thread_entry_point+0x34(entry=0x7ee05a05, arg=0x7ffdf000) [/source/wine/dlls/ntdll/signal_i386.c:2457] in ntdll (0x0033ffc8) 9 0x7ef93ecf LdrInitializeThunk(kernel_start=0x7ffdf000, unknown2=0, unknown3=0, unknown4=0) [/source/wine/dlls/ntdll/loader.c:2621] in ntdll (0x0033ffe8) 0xf779b42e: jmp 0xf779b423 ...