[Bug 51596] Unhandled exception code c0000005 when running any 64-bit Winelib application

WineHQ Bugzilla wine-bugs at winehq.org
Wed Aug 18 11:32:46 CDT 2021


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

Bernhard Übelacker <bernhardu at mailbox.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |bernhardu at mailbox.org

--- Comment #2 from Bernhard Übelacker <bernhardu at mailbox.org> ---
Created attachment 70490
  --> https://bugs.winehq.org/attachment.cgi?id=70490
Details on the debugging attempt.

I tried to debug this and think I found some details.

In function "init_builtin_dll" an array with init functions is
queried and called afterwards.

Unfortunately the base address of this array is stored in register $rsi,
which gets overwritten in the call to
the function frame_dummy/register_tm_clones (main.exe).


I tried adding a "volatile" to the variable funcs declaration,
and with that the executable did output its message without crash.

-    void (**funcs)(int, char **, char **) = (void *)buffer;
+    void (** volatile funcs)(int, char **, char **) = (void *)buffer;


Unfortunately I can't tell if $rsi is allowed to be overwritten at
that point and wineg++ has to be modified to avoid this,
or if the "volatile" approach is right (and reliable).

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