aboutsummaryrefslogtreecommitdiff
path: root/gdb/x86-64-linux-tdep.c
diff options
context:
space:
mode:
authorAndrew Cagney <cagney@redhat.com>2002-12-09 02:04:17 +0000
committerAndrew Cagney <cagney@redhat.com>2002-12-09 02:04:17 +0000
commit97f46953947f21e2b8f1cac99546b7d6b51a84cc (patch)
tree9409aa3739d8d7a303f9af4fa77ed6b7e22648cc /gdb/x86-64-linux-tdep.c
parent8b36eed86d2784688816eb8bf25bf50b188e2c23 (diff)
downloadgdb-97f46953947f21e2b8f1cac99546b7d6b51a84cc.zip
gdb-97f46953947f21e2b8f1cac99546b7d6b51a84cc.tar.gz
gdb-97f46953947f21e2b8f1cac99546b7d6b51a84cc.tar.bz2
2002-12-08 Andrew Cagney <ac131313@redhat.com>
* gdbarch.sh (INIT_FRAME_PC_FIRST, INIT_FRAME_PC_DEFAULT): Convert to pure functions. * gdbarch.h, gdbarch.c: Re-generate. * frame.c (get_prev_frame): Explictly assign prev's pc with value returned by INIT_FRAME_PC_FIRST and INIT_EXTRA_FRAME_INFO. * arch-utils.h (init_frame_pc_default, init_frame_pc_noop): Change declaration to a function returning a CORE_ADDR. * x86-64-tdep.h (x86_64_init_frame_pc): Ditto. * arch-utils.c (init_frame_pc_noop): Return the PC value. (init_frame_pc_default): Ditto. * x86-64-linux-tdep.c (x86_64_init_frame_pc): Ditto. * s390-tdep.c (s390_init_frame_pc_first): Ditto. * mips-tdep.c (mips_init_frame_pc_first): Ditto. * dwarf2cfi.h (cfi_init_frame_pc): Ditto. * dwarf2cfi.c (cfi_init_frame_pc): Ditto. * alpha-tdep.c (alpha_init_frame_pc_first): Ditto. * i386-interix-tdep.c (i386_interix_init_abi): Set init_frame_pc to init_frame_pc_noop. (i386_interix_init_frame_pc): Delete function. * z8k-tdep.c (init_frame_pc): Delete function. * config/z8k/tm-z8k.h (INIT_FRAME_PC): Define as init_frame_pc_noop. (INIT_FRAME_PC_FIRST): Ditto. * config/mn10200/tm-mn10200.h (INIT_FRAME_PC): Ditto. (INIT_FRAME_PC_FIRST): Ditto. * config/sparc/tm-sparc.h (INIT_FRAME_PC): Ditto. * config/rs6000/tm-rs6000.h (INIT_FRAME_PC): Redefine as init_frame_pc_noop. (INIT_FRAME_PC_FIRST): Convert to an expression. * config/sparc/tm-sparc.h (INIT_FRAME_PC_FIRST): Ditto.
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);
}