diff options
author | Konstantin Belousov <kostik@pooma.home> | 2010-04-14 12:10:34 +0300 |
---|---|---|
committer | Konstantin Belousov <kostik@pooma.home> | 2010-04-14 12:10:34 +0300 |
commit | 0d311ea1617fd0ebff52dfacc85746fcc165bb10 (patch) | |
tree | 21a4aee57cc7d7ef93cce90f4e9772c4f260e59e | |
parent | 34b064bf2233ec8c9223786f4bc714585bbce4f7 (diff) | |
download | libunwind-0d311ea1617fd0ebff52dfacc85746fcc165bb10.tar.gz |
Add abort() after sigreturn calls
-rw-r--r-- | src/x86/Gos-freebsd.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/x86/Gos-freebsd.c b/src/x86/Gos-freebsd.c index 6a6406e7..928955b4 100644 --- a/src/x86/Gos-freebsd.c +++ b/src/x86/Gos-freebsd.c @@ -346,11 +346,13 @@ x86_local_resume (unw_addr_space_t as, unw_cursor_t *cursor, void *arg) if (c->sigcontext_format == X86_SCF_NONE) { Debug (8, "resuming at ip=%x via setcontext()\n", c->dwarf.ip); setcontext (uc); + abort(); } else if (c->sigcontext_format == X86_SCF_FREEBSD_SIGFRAME) { 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)); + abort(); } else { Debug (8, "resuming at ip=%x for sigcontext format %d not implemented\n", c->dwarf.ip, c->sigcontext_format); |