aboutsummaryrefslogtreecommitdiff
path: root/gdb/x86-64-linux-tdep.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/x86-64-linux-tdep.c')
-rw-r--r--gdb/x86-64-linux-tdep.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/gdb/x86-64-linux-tdep.c b/gdb/x86-64-linux-tdep.c
index 19ee19c..de31e13 100644
--- a/gdb/x86-64-linux-tdep.c
+++ b/gdb/x86-64-linux-tdep.c
@@ -175,17 +175,17 @@ x86_64_linux_frame_chain (struct frame_info *fi)
return fp;
}
-void
+CORE_ADDR
x86_64_init_frame_pc (int fromleaf, struct frame_info *fi)
{
CORE_ADDR addr;
- if (fi->next && (get_frame_type (fi->next) == SIGTRAMP_FRAME))
+ if (get_next_frame (fi) && (get_frame_type (fi->next) == SIGTRAMP_FRAME))
{
- addr = fi->next->next->frame
+ addr = get_frame_base (get_next_frame (get_next_frame (fi)))
+ LINUX_SIGINFO_SIZE + LINUX_UCONTEXT_SIGCONTEXT_OFFSET;
- fi->pc = read_memory_integer (addr + LINUX_SIGCONTEXT_PC_OFFSET, 8);
+ return read_memory_integer (addr + LINUX_SIGCONTEXT_PC_OFFSET, 8);
}
else
- cfi_init_frame_pc (fromleaf, fi);
+ return cfi_init_frame_pc (fromleaf, fi);
}