/* Target-dependent code for OSF/1 on Alpha.
- Copyright (C) 2002, 2003, 2007, 2008 Free Software Foundation, Inc.
+ Copyright (C) 2002-2003, 2007-2012 Free Software Foundation, Inc.
This file is part of GDB.
#include "alpha-tdep.h"
static int
-alpha_osf1_pc_in_sigtramp (CORE_ADDR pc, char *func_name)
+alpha_osf1_pc_in_sigtramp (struct gdbarch *gdbarch,
+ CORE_ADDR pc, const char *func_name)
{
return (func_name != NULL && strcmp ("__sigtramp", func_name) == 0);
}
static CORE_ADDR
-alpha_osf1_sigcontext_addr (struct frame_info *next_frame)
+alpha_osf1_sigcontext_addr (struct frame_info *this_frame)
{
- const struct frame_id next_id = get_frame_id (next_frame);
+ struct gdbarch *gdbarch = get_frame_arch (this_frame);
+ enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
+ struct frame_info *next_frame = get_next_frame (this_frame);
+ struct frame_id next_id = null_frame_id;
+
+ if (next_frame != NULL)
+ next_id = get_frame_id (next_frame);
- return (read_memory_integer (next_id.stack_addr, 8));
+ return (read_memory_integer (next_id.stack_addr, 8, byte_order));
}
static void
alpha_mdebug_init_abi (info, gdbarch);
/* The next/step support via procfs on OSF1 is broken when running
- on multi-processor machines. We need to use software single stepping
- instead. */
+ on multi-processor machines. We need to use software single
+ stepping instead. */
set_gdbarch_software_single_step (gdbarch, alpha_software_single_step);
tdep->sigcontext_addr = alpha_osf1_sigcontext_addr;
tdep->jb_elt_size = 8;
}
+/* Provide a prototype to silence -Wmissing-prototypes. */
+extern initialize_file_ftype _initialize_alpha_osf1_tdep;
+
void
_initialize_alpha_osf1_tdep (void)
{