https://bugs.winehq.org/show_bug.cgi?id=44349
Bug ID: 44349 Summary: winedgb: stepping is broken on 32-bit Product: Wine Version: 3.0-rc6 Hardware: x86 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: winedbg Assignee: wine-bugs@winehq.org Reporter: daniel.santos@pobox.com Distribution: Gentoo
This is actually 3.0-rc6~6 (110eecf7d48688b573f4215f84ff8ad464f40da8) but it doesn't look like any of those patches touched this. using stepi on the call instruction below does not perform the call and instead increments the instruction pointer by one.
Using gdb 8.0.1 and built with gcc 5.4.0
$ WINEARCH=win64 WINEDEBUG=fixme-all WINEPREFIX=/tmp/daniel/wine/test-debug /home/daniel/proj/emu/wine/work1/build/debug/32/wine winedbg --gdb ./user32_test.exe.so win 002e:002f: create process 'Z:\home\daniel\proj\emu\wine\work1\build\debug\32\dlls\user32\tests\user32_test.exe'/0x110d68 @0x7ec438e0 (0<0>) 002e:002f: create thread I @0x7ec438e0 GNU gdb (Gentoo 8.0.1 vanilla) 8.0.1 Copyright (C) 2017 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-pc-linux-gnu". Type "show configuration" for configuration details. For bug reporting instructions, please see: https://bugs.gentoo.org/. Find the GDB manual and other documentation resources online at: http://www.gnu.org/software/gdb/documentation/. For help, type "help". Type "apropos word" to search for commands related to "word". 002e:002f: loads DLL C:\windows\system32\KERNEL32.dll @0x7b410000 (0<0>) 002e:002f: loads DLL C:\windows\system32\ntdll.dll @0x7bc10000 (0<0>) 002e:002f: loads DLL C:\windows\system32\advapi32.dll @0x7e750000 (0<0>) 002e:002f: loads DLL C:\windows\system32\gdi32.dll @0x7e7d0000 (0<0>) 002e:002f: loads DLL C:\windows\system32\version.dll @0x7eff0000 (0<0>) 002e:002f: loads DLL C:\windows\system32\user32.dll @0x7e920000 (0<0>) 002e:002f: loads DLL C:\windows\system32\imm32.dll @0x7e6f0000 (0<0>) 0000002e:0000002f: exception code=0x80000003 No support for verbose packet MustReplyEmpty No support for verbose packet File:setfs:0 No support for verbose packet File:open:6a7573742070726f62696e67,0,1c0 warning: remote target does not support file transfer, attempting to access files from local filesystem. warning: Could not load shared library symbols for linux-gate.so.1. Do you need "set solib-search-path" or "set sysroot"? 0x7b469f66 in DbgBreakPoint () at /home/daniel/proj/emu/wine/work1/include/winternl.h:2157 2157 static inline void WINAPI DbgBreakPoint(void) { __asm__ __volatile__("int3"); } trace: 98 => 80 Wine-gdb> break /home/daniel/proj/emu/wine/work1/dlls/user32/tests/win.c:10653 Breakpoint 1 at 0x7ec3b336: file /home/daniel/proj/emu/wine/work1/dlls/user32/tests/win.c, line 10653. Wine-gdb> cont Continuing. 0038:err:win:DefWindowProcW called for other process window 0x4006c
Breakpoint 1, func_win () at /home/daniel/proj/emu/wine/work1/dlls/user32/tests/win.c:10653 10653 test_enum_thread_windows(); Wine-gdb> display /2i $eip 1: x/2i $eip => 0x7ec3b336 <func_win+1396>: call 0x7ebfc90b <test_enum_thread_windows> 0x7ec3b33b <func_win+1401>: call 0x7ec02b25 <test_mdi> Wine-gdb> stepi 0x7ec3b337 10653 test_enum_thread_windows(); 1: x/2i $eip => 0x7ec3b337 <func_win+1397>: rclb 0xe5e8fffc 0x7ec3b33d <func_win+1403>: ja 0x7ec3b33b <func_win+1401>
And is you might expect, if I stepi again:
Wine-gdb> stepi
Program received signal SIGSEGV, Segmentation fault. 0x7ec3b337 in func_win () at /home/daniel/proj/emu/wine/work1/dlls/user32/tests/win.c:10653 10653 test_enum_thread_windows(); 1: x/2i $eip => 0x7ec3b337 <func_win+1397>: rclb 0xe5e8fffc 0x7ec3b33d <func_win+1403>: ja 0x7ec3b33b <func_win+1401>
https://bugs.winehq.org/show_bug.cgi?id=44349
--- Comment #1 from Daniel Santos daniel.santos@pobox.com --- I should clarify that the above test is with a 32- & 64-bit build, I haven't tried on a 32-bit only build and it's fine on 64-bit.
https://bugs.winehq.org/show_bug.cgi?id=44349
--- Comment #2 from Daniel Santos daniel.santos@pobox.com --- Created attachment 60238 --> https://bugs.winehq.org/attachment.cgi?id=60238 config.log
Also, I built with distcc, so that *could* be the problem. Ignore --enable-debug-tools --enable-hybrid-sync as I used a common build script for testing some other patch sets.
https://bugs.winehq.org/show_bug.cgi?id=44349
Zebediah Figura z.figura12@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Ever confirmed|0 |1 CC| |z.figura12@gmail.com Status|UNCONFIRMED |NEW Summary|winedgb: stepping is broken |winedbg: stepping is broken |on 32-bit |on 32-bit using GDB proxy
--- Comment #3 from Zebediah Figura z.figura12@gmail.com --- Confirming. I've seen this bug for a while, but never bothered to look into it.
https://bugs.winehq.org/show_bug.cgi?id=44349
--- Comment #4 from Zebediah Figura z.figura12@gmail.com --- gdb thinks that the breakpoint that we inject is a permanent breakpoint, i.e. there's actually an int3 in the application's code.
I can't figure out why this doesn't happen on amd64, since I can't (for some unrelated reason) debug any amd64 application using the gdb proxy.
Can you upload logs of 32- and 64-bit, with `set debug infrun 2` entered before the `stepi` command?
https://bugs.winehq.org/show_bug.cgi?id=44349
--- Comment #5 from Zebediah Figura z.figura12@gmail.com --- For some reason 64-bit spontaneously started working again, and I'm seeing the same problem there as on 32-bit.
https://bugs.winehq.org/show_bug.cgi?id=44349
--- Comment #6 from Daniel Santos daniel.santos@pobox.com --- Created attachment 60260 --> https://bugs.winehq.org/attachment.cgi?id=60260 winedbg.log
(In reply to Zebediah Figura from comment #4)
Can you upload logs of 32- and 64-bit, with `set debug infrun 2` entered before the `stepi` command?
Here ya go. So I guess I hadn't tried it on 64-bit because it's happening there too.
https://bugs.winehq.org/show_bug.cgi?id=44349
Daniel Santos daniel.santos@pobox.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|winedbg: stepping is broken |winedbg: stepping is broken |on 32-bit using GDB proxy |using GDB proxy
https://bugs.winehq.org/show_bug.cgi?id=44349
Daniel Santos daniel.santos@pobox.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #60260|0 |1 is obsolete| |
--- Comment #7 from Daniel Santos daniel.santos@pobox.com --- Created attachment 60261 --> https://bugs.winehq.org/attachment.cgi?id=60261 winedbg.log
Oops, here's the correct log from 3.0-rc6
https://bugs.winehq.org/show_bug.cgi?id=44349
Zebediah Figura z.figura12@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |FIXED Fixed by SHA1| |eb63a5f3c3c1851f212bd14f91d | |a329bf3166e42
--- Comment #8 from Zebediah Figura z.figura12@gmail.com --- This should be fixed as of eb63a5f3c3c1851f212bd14f91da329bf3166e42.
https://bugs.winehq.org/show_bug.cgi?id=44349
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #9 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 3.1.
https://bugs.winehq.org/show_bug.cgi?id=44349
--- Comment #10 from Daniel Santos daniel.santos@pobox.com --- (In reply to Zebediah Figura from comment #8)
This should be fixed as of eb63a5f3c3c1851f212bd14f91da329bf3166e42.
I never saw an update to your patch, but I haven't gotten the failed assertion again, so I'm going to presume it was something I broke on that particular build.
Thanks again Zebediah!
https://bugs.winehq.org/show_bug.cgi?id=44349
Michael Stefaniuc mstefani@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|--- |2.0.x CC| |mstefani@winehq.org
https://bugs.winehq.org/show_bug.cgi?id=44349
Michael Stefaniuc mstefani@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|2.0.x |---
--- Comment #11 from Michael Stefaniuc mstefani@winehq.org --- Removing the 2.0.x milestone from bugs included in 2.0.5.
https://bugs.winehq.org/show_bug.cgi?id=44349
Michael Stefaniuc mstefani@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|--- |3.0.x
https://bugs.winehq.org/show_bug.cgi?id=44349
Michael Stefaniuc mstefani@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|3.0.x |---
--- Comment #12 from Michael Stefaniuc mstefani@winehq.org --- Removing the 3.0.x milestone from bugs included in 3.0.1.