[Bug 45490] New: 'winedbg' backtraces broken for 32-bit processes in 64-bit WINEPREFIX
wine-bugs at winehq.org
wine-bugs at winehq.org
Sat Jul 21 08:54:25 CDT 2018
https://bugs.winehq.org/show_bug.cgi?id=45490
Bug ID: 45490
Summary: 'winedbg' backtraces broken for 32-bit processes in
64-bit WINEPREFIX
Product: Wine
Version: 3.13
Hardware: x86-64
OS: Linux
Status: NEW
Severity: normal
Priority: P2
Component: dbghelp
Assignee: wine-bugs at winehq.org
Reporter: focht at gmx.net
Distribution: ---
Hello folks,
apparently no one uses 'winedbg' to debug native apps which is understandable
;-)
Backtraces are broken for 32-bit processes in 64-bit WINEPREFIX (affecting
crash reports, 'bt all', etc.)
Regression caused by:
https://source.winehq.org/git/wine.git/commitdiff/8b3294a4dd975eb44bda3ab581ee9958d300d5d3
--- snip ---
winedbg: Always start the interactive debugger in 64-bit mode if in a 64-bit
prefix.
author Zebediah Figura <zfigura at codeweavers.com>
Wed, 13 Jun 2018 21:34:02 +0000 (16:34 -0500)
committer Alexandre Julliard <julliard at winehq.org>
Thu, 14 Jun 2018 07:29:14 +0000 (09:29 +0200)
Signed-off-by: Zebediah Figura <zfigura at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
--- snip ---
Before (any 32-bit app):
--- snip ---
$ winedbg ./ILDownloadManager.exe
WineDbg starting on pid 0061
DbgBreakPoint () at
/home/focht/projects/wine/mainline-src/include/winternl.h:2259
0x7b46b6f4 DbgBreakPoint+0x4
[/home/focht/projects/wine/mainline-src/include/winternl.h:2259] in kernel32:
nop
2259 static inline void WINAPI DbgBreakPoint(void) { __asm__
__volatile__("int3"); }
Wine-dbg>bt
Backtrace:
=>0 0x7b46b6f4 DbgBreakPoint+0x4()
[/home/focht/projects/wine/mainline-src/include/winternl.h:2259] in kernel32
(0x0033fed8)
1 0x7b46dbe4 start_process+0x119(entry=<couldn't compute location>,
peb=<couldn't compute location>)
[/home/focht/projects/wine/mainline-src/dlls/kernel32/process.c:1098] in
kernel32 (0x0033ffd8)
2 0x7b46daca start_process_wrapper+0x9() in kernel32 (0x0033ffec)
--- snip ---
After:
--- snip ---
$ winedbg ./ILDownloadManager.exe
WineDbg starting on pid 0032
DbgBreakPoint () at
/home/focht/projects/wine/mainline-src/include/winternl.h:2259
0x000000007b46b6f4 DbgBreakPoint+0x4
[/home/focht/projects/wine/mainline-src/include/winternl.h:2259] in kernel32:
nop
2259 static inline void WINAPI DbgBreakPoint(void) { __asm__
__volatile__("int3"); }
Wine-dbg>bt
Backtrace:
=>0 0x000000007b46b6f4 DbgBreakPoint+0x4()
[/home/focht/projects/wine/mainline-src/include/winternl.h:2259] in kernel32
(0x000000000033fed8)
1 0x000000007b46b6f4 DbgBreakPoint+0x3()
[/home/focht/projects/wine/mainline-src/include/winternl.h:2259] in kernel32
(0x000000000033fed8)
2 0x000000007b46b6f4 DbgBreakPoint+0x3()
[/home/focht/projects/wine/mainline-src/include/winternl.h:2259] in kernel32
(0x000000000033fed8)
3 0x000000007b46b6f4 DbgBreakPoint+0x3()
[/home/focht/projects/wine/mainline-src/include/winternl.h:2259] in kernel32
(0x000000000033fed8)
4 0x000000007b46b6f4 DbgBreakPoint+0x3()
[/home/focht/projects/wine/mainline-src/include/winternl.h:2259] in kernel32
(0x000000000033fed8)
5 0x000000007b46b6f4 DbgBreakPoint+0x3()
[/home/focht/projects/wine/mainline-src/include/winternl.h:2259] in kernel32
(0x000000000033fed8)
--- snip ---
Another example of dumping thread callstack using 'winedbg' in Wine 3.10:
--- snip --
Wine-dbg>bt
Backtrace:
=>0 0xf7f73047 __kernel_vsyscall+0x7() in [vdso].so (0x0033f508)
1 0xf7d40907 __libc_read+0x66() in libpthread.so.0 (0x0033f508)
2 0x7bc8f9a7 wait_select_reply+0x1e(cookie=0x33f5ec)
[/home/focht/projects/wine/mainline-src/dlls/ntdll/server.c:359] in ntdll
(0x0033f508)
3 0x7bc9086b server_select+0x163(select_op=0x33f644, size=0x8, flags=0x2,
timeout=0x33f7d8)
[/home/focht/projects/wine/mainline-src/dlls/ntdll/server.c:618] in ntdll
(0x0033f618)
4 0x7bc9abd4 wait_objects+0xb6(count=0x1, handles=0x33f7e0, wait_any=1,
alertable=0, timeout=0x33f7d8)
[/home/focht/projects/wine/mainline-src/dlls/ntdll/sync.c:1031] in ntdll
(0x0033f758)
5 0x7bc9ac12 NtWaitForMultipleObjects+0x38(count=<couldn't compute location>,
handles=<couldn't compute location>, wait_any=1, alertable=0, timeout=<couldn't
compute location>)
[/home/focht/projects/wine/mainline-src/dlls/ntdll/sync.c:1042] in ntdll
(0x0033f798)
6 0x7b47e641 WaitForMultipleObjectsEx+0xad(count=<couldn't compute location>,
handles=<couldn't compute location>, wait_all=<couldn't compute location>,
timeout=<couldn't compute location>, alertable=<couldn't compute location>)
[/home/focht/projects/wine/mainline-src/dlls/kernel32/sync.c:221] in kernel32
(0x0033f8f8)
7 0x7b47e4c3 WaitForSingleObject+0x24(handle=<couldn't compute location>,
timeout=<couldn't compute location>)
[/home/focht/projects/wine/mainline-src/dlls/kernel32/sync.c:160] in kernel32
(0x0033f938)
8 0x0041f3b9 in ildownloadmanager (+0x1f3b8) (0x0033f964)
9 0x0047bce0 in ildownloadmanager (+0x7bcdf) (0x0072efb8)
10 0x0072f650 (0x0058aca4)
11 0x0047b9f0 in ildownloadmanager (+0x7b9ef) (0x0047b7a0)
--- snip ---
With Wine 3.11:
--- snip ---
0x00000000f7fc1047: int $0x80
Wine-dbg>bt
Backtrace:
=>0 0x00000000f7fc1047 (0x000000000033f508)
1 0x00000000f7fc1047 (0x000000000033f508)
2 0x00000000f7fc1047 (0x000000000033f508)
3 0x00000000f7fc1047 (0x000000000033f508)
4 0x00000000f7fc1047 (0x000000000033f508)
5 0x00000000f7fc1047 (0x000000000033f508)
6 0x00000000f7fc1047 (0x000000000033f508)
7 0x00000000f7fc1047 (0x000000000033f508)
8 0x00000000f7fc1047 (0x000000000033f508)
9 0x00000000f7fc1047 (0x000000000033f508)
--- snip ---
It still works when using 32-bit WINEPREFIX for 32-bit apps.
That's not a solution though as various apps/games consist of a mix of
64-bit/32-bit components/helper apps. Also people tend to recycle their default
(WoW64) prefix for multiple apps/games.
$ wine --version
wine-3.13
Regards
--
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.
More information about the wine-bugs
mailing list