| Index: gdb/hppabsd-tdep.c
|
| diff --git a/gdb/hppabsd-tdep.c b/gdb/hppabsd-tdep.c
|
| index 5605abbc4a12c17d6e7f2399e20a9d8822306a97..9b2a219ce929c56f955e4eea351c3e6b29c0c44c 100644
|
| --- a/gdb/hppabsd-tdep.c
|
| +++ b/gdb/hppabsd-tdep.c
|
| @@ -1,6 +1,6 @@
|
| /* Target-dependent code for HP PA-RISC BSD's.
|
|
|
| - Copyright (C) 2004-2012 Free Software Foundation, Inc.
|
| + Copyright (C) 2004-2013 Free Software Foundation, Inc.
|
|
|
| This file is part of GDB.
|
|
|
| @@ -26,6 +26,7 @@
|
|
|
| #include "hppa-tdep.h"
|
| #include "hppabsd-tdep.h"
|
| +#include "dwarf2-frame.h"
|
| #include "solib-svr4.h"
|
|
|
| static CORE_ADDR
|
| @@ -47,7 +48,7 @@ hppabsd_find_global_pointer (struct gdbarch *gdbarch, struct value *function)
|
| /* If the address is in the .plt section, then the real function
|
| hasn't yet been fixed up by the linker so we cannot determine the
|
| Global Pointer for that function. */
|
| - if (in_plt_section (faddr, NULL))
|
| + if (in_plt_section (faddr))
|
| return 0;
|
|
|
| faddr_sec = find_pc_section (faddr);
|
| @@ -104,6 +105,17 @@ hppabsd_find_global_pointer (struct gdbarch *gdbarch, struct value *function)
|
| }
|
|
|
|
|
| +static void
|
| +hppabsd_dwarf2_frame_init_reg (struct gdbarch *gdbarch, int regnum,
|
| + struct dwarf2_frame_state_reg *reg,
|
| + struct frame_info *this_frame)
|
| +{
|
| + if (regnum == HPPA_PCOQ_HEAD_REGNUM)
|
| + reg->how = DWARF2_FRAME_REG_RA;
|
| + else if (regnum == HPPA_SP_REGNUM)
|
| + reg->how = DWARF2_FRAME_REG_CFA;
|
| +}
|
| +
|
| void
|
| hppabsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
|
| {
|
| @@ -122,4 +134,8 @@ hppabsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
|
| /* OpenBSD and NetBSD use SVR4-style shared libraries. */
|
| set_solib_svr4_fetch_link_map_offsets
|
| (gdbarch, svr4_ilp32_fetch_link_map_offsets);
|
| +
|
| + /* Hook in the DWARF CFI frame unwinder. */
|
| + dwarf2_frame_set_init_reg (gdbarch, hppabsd_dwarf2_frame_init_reg);
|
| + dwarf2_append_unwinders (gdbarch);
|
| }
|
|
|