• Martin Storsjo's avatar
    ntdll: Fix unwinding functions that end with a branch instruction. · babbf352
    Martin Storsjo authored
    This happens with functions that aren't intended to return e.g. like
    _Unwind_Resume. In these cases, the return address is outside of the
    function (the first instruction in the next function).
    
    Set the flag CONTEXT_UNWOUND_TO_CALL after unwinding to a callsite,
    and if this flag is set, look up a RUNTIME_FUNCTION based on
    Control.Pc - 4.
    
    This isn't a complete (nor probably entirely correct) implementation
    of the flag CONTEXT_UNWOUND_TO_CALL, but it practically seems to
    work fine and fixes a large number of unwinding cases.
    Signed-off-by: 's avatarMartin Storsjo <martin@martin.st>
    Signed-off-by: 's avatarAlexandre Julliard <julliard@winehq.org>
    babbf352
Name
Last commit
Last update
dlls Loading commit data...
documentation Loading commit data...
fonts Loading commit data...
include Loading commit data...
libs Loading commit data...
loader Loading commit data...
nls Loading commit data...
po Loading commit data...
programs Loading commit data...
server Loading commit data...
tools Loading commit data...
.editorconfig Loading commit data...
.mailmap Loading commit data...
ANNOUNCE Loading commit data...
AUTHORS Loading commit data...
COPYING.LIB Loading commit data...
LICENSE Loading commit data...
LICENSE.OLD Loading commit data...
MAINTAINERS Loading commit data...
Makefile.in Loading commit data...
README Loading commit data...
VERSION Loading commit data...
aclocal.m4 Loading commit data...
configure Loading commit data...
configure.ac Loading commit data...