[Bug 51052] New: 6.4 regression: 32-bit Cheat Engine attaching its debugger leads to the target process crashing

WineHQ Bugzilla wine-bugs at winehq.org
Sat Apr 24 09:47:43 CDT 2021


https://bugs.winehq.org/show_bug.cgi?id=51052

            Bug ID: 51052
           Summary: 6.4 regression: 32-bit Cheat Engine attaching its
                    debugger leads to the target process crashing
           Product: Wine
           Version: 6.4
          Hardware: x86-64
               URL: https://cheatengine.org/downloads.php
                OS: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: -unknown
          Assignee: wine-bugs at winehq.org
          Reporter: subgraph93 at gmail.com
   Regression SHA1: af74bd31229e0f065448253b248ec0cb3b51af26
      Distribution: Ubuntu

Steps to reproduce:
1) Install Cheat Engine (version 7.2 is affected, so is 7.1).
2) Start up cheatengine-i386.exe.
3) In the same prefix, start up the target process. No other software is
needed, because the issue can be reproduced with CE tutorials. To start up the
tutorial, open the "Help" dropdown menu and click the "Cheat Engine Tutorial"
entry.
4) Open the process selection window: File > Open Process; or just click the
flashing icon that shows the computer display with a magnifying glass.
5) In the "Applications" view (it is probably default), there should be an
entry for Cheat Engine itself, and one for "Tutorial-i386". Select the latter
entry, then click "Attach debugger to process", then click "Yes" in the
confirmation modal.
6) When the debugger attaches (should be near-instant for release builds, but
unoptimized builds can take about a minute), the process selection window will
close. At this point, the target process may crash already, but in some cases
it may still work. If the tutorial window still displays, switching focus to it
should cause the crash. In some cases, the target process crashes before this
happens, and Cheat Engine gives a "failed to attach debugger" error instead.

Logs almost always have the following entry (thread ID and the address may
vary):
013c:err:seh:NtRaiseException Unhandled exception code c000008f flags 0 addr
0xf7b80644
In one case (on a dirty prefix, which may or may not matter; the issue
otherwise still happens on a clean prefix), the error code was not c000008f,
but c00002b5. In some cases as well, in addition to the above error and
immediately before it, the following is output:
01d0:fixme:seh:fpe_handler untested SIMD exception: 0x6. Might not work
correctly
I didn't notice other major differences in console logs compared to working
Wine versions, so I didn't attach complete terminal outputs.

Regression testing (which I hope I did correctly) points to:
commit af74bd31229e0f065448253b248ec0cb3b51af26
Author: Jacek Caban <jacek at codeweavers.com>
Date:   Tue Mar 2 18:52:44 2021 +0100

    ntdll: Use syscall dispatcher to restore context in NtSetContextThread.

    Signed-off-by: Jacek Caban <jacek at codeweavers.com>
    Signed-off-by: Alexandre Julliard <julliard at winehq.org>

Other notes:
1) Ubuntu 20.10
2) Wine 6.7 (devel and staging) are still affected.
3) 64-bit Cheat Engine crashed neither 64-bit nor 32-bit target processes,
though it has issues working with 32-bit target processes.
4) This can be reproduced with most, but not all target processes. I think
targeting a 64-bit process doesn't cause the issue, though I wouldn't expect
debugging to work anyway with 32-bit CE. For example of a process that didn't
crash, I couldn't crash winecfg. My testing seems to indicate that the behavior
of a process is consistent in terms of whether or not it crashes, how it
crashes, and what terminal messages are output; however, different processes
may have slightly different behavior.

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