bt all broken? Bisect result.

Peter Urbanec winehq.org at urbanec.net
Wed Apr 28 02:11:45 CDT 2010


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 at 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
...




More information about the wine-devel mailing list