diff --git a/src/x86/Gos-freebsd.c b/src/x86/Gos-freebsd.c index 928955b4..247c35fa 100644 --- a/src/x86/Gos-freebsd.c +++ b/src/x86/Gos-freebsd.c @@ -351,7 +351,7 @@ x86_local_resume (unw_addr_space_t as, unw_cursor_t *cursor, void *arg) struct sigcontext *sc = (struct sigcontext *) c->sigcontext_addr; Debug (8, "resuming at ip=%x via sigreturn(%p)\n", c->dwarf.ip, sc); - sigreturn((ucontext_t *)((const char *)sc + FREEBSD_UC_MCONTEXT_OFF)); + sigreturn((ucontext_t *)((const char *)sc + FREEBSD_SC_UCONTEXT_OFF)); abort(); } else { Debug (8, "resuming at ip=%x for sigcontext format %d not implemented\n", diff --git a/src/x86/offsets.h b/src/x86/offsets.h index 0f07352b..e8a255cd 100644 --- a/src/x86/offsets.h +++ b/src/x86/offsets.h @@ -85,7 +85,7 @@ /* FreeBSD-specific definitions: */ -#define FREEBSD_SC_UCONTEXT_OFF 0x14 +#define FREEBSD_SC_UCONTEXT_OFF 0x20 #define FREEBSD_UC_MCONTEXT_OFF 0x10 #define FREEBSD_UC_MCONTEXT_GS_OFF 0x14