diff options
author | Konstantin Belousov <kostik@pooma.home> | 2010-04-05 16:25:36 +0300 |
---|---|---|
committer | Konstantin Belousov <kostik@pooma.home> | 2010-04-05 16:25:36 +0300 |
commit | ccc0ae665baa67ae3df8595ab7bb0ef8cbc0e5c4 (patch) | |
tree | d67557b99ce0586cf1a49e8414eb8139a16215f0 /src/x86_64/Gstep.c | |
parent | a40641f326a5360af03e1788ef1c48568761a5be (diff) | |
download | libunwind-ccc0ae665baa67ae3df8595ab7bb0ef8cbc0e5c4.tar.gz |
More move of osdep code.
Diffstat (limited to 'src/x86_64/Gstep.c')
-rw-r--r-- | src/x86_64/Gstep.c | 19 |
1 files changed, 1 insertions, 18 deletions
diff --git a/src/x86_64/Gstep.c b/src/x86_64/Gstep.c index 2ff2bfe3..d286d445 100644 --- a/src/x86_64/Gstep.c +++ b/src/x86_64/Gstep.c @@ -77,24 +77,7 @@ unw_step (unw_cursor_t *cursor) Debug (13, "dwarf_step() failed (ret=%d), trying frame-chain\n", ret); - c->sigcontext_format = unw_is_signal_frame (cursor); - if (c->sigcontext_format == X86_64_SCF_FREEBSD_SYSCALL) { - c->dwarf.loc[RCX] = c->dwarf.loc[R10]; -// rsp_loc = DWARF_LOC(c->dwarf.cfa - 8, 0); -// rbp_loc = c->dwarf.loc[RBP]; - c->dwarf.loc[RIP] = DWARF_LOC (c->dwarf.cfa, 0); - ret = dwarf_get (&c->dwarf, c->dwarf.loc[RIP], &c->dwarf.ip); - Debug (1, "Frame Chain [RIP=0x%Lx] = 0x%Lx\n", - (unsigned long long) DWARF_GET_LOC (c->dwarf.loc[RIP]), - (unsigned long long) c->dwarf.ip); - if (ret < 0) - { - Debug (2, "returning %d\n", ret); - return ret; - } - c->dwarf.cfa += 8; - return 1; - } else if (c->sigcontext_format != X86_64_SCF_NONE) + if (unw_is_signal_frame (cursor)) { ret = unw_handle_signal_frame(cursor); if (ret < 0) |