X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gdb%2Fsparc64-sol2-tdep.c;h=6e108d15a72ac348d96bc989cd26a321a88b1e2d;hb=837b3435bc80eade8aa655030173560af3be609c;hp=e5800cc98e6d3fc5c65ccd33f266f3df206f0750;hpb=959b87241d85b42da82c45ecc4bc904895092730;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/sparc64-sol2-tdep.c b/gdb/sparc64-sol2-tdep.c index e5800cc98e..6e108d15a7 100644 --- a/gdb/sparc64-sol2-tdep.c +++ b/gdb/sparc64-sol2-tdep.c @@ -1,6 +1,6 @@ /* Target-dependent code for Solaris UltraSPARC. - Copyright (C) 2003, 2004, 2006, 2007, 2008, 2009 + Copyright (C) 2003, 2004, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. This file is part of GDB. @@ -67,7 +67,8 @@ sparc64_sol2_sigtramp_frame_cache (struct frame_info *this_frame, /* The third argument is a pointer to an instance of `ucontext_t', which has a member `uc_mcontext' that contains the saved registers. */ - regnum = (cache->frameless_p ? SPARC_O2_REGNUM : SPARC_I2_REGNUM); + regnum = + (cache->copied_regs_mask & 0x04) ? SPARC_I2_REGNUM : SPARC_O2_REGNUM; mcontext_addr = get_frame_register_unsigned (this_frame, regnum) + 64; cache->saved_regs[SPARC64_CCR_REGNUM].addr = mcontext_addr + 0 * 8; @@ -141,6 +142,7 @@ sparc64_sol2_sigtramp_frame_sniffer (const struct frame_unwind *self, static const struct frame_unwind sparc64_sol2_sigtramp_frame_unwind = { SIGTRAMP_FRAME, + default_frame_unwind_stop_reason, sparc64_sol2_sigtramp_frame_this_id, sparc64_sol2_sigtramp_frame_prev_register, NULL, @@ -181,9 +183,8 @@ sparc64_sol2_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) /* Solaris has kernel-assisted single-stepping support. */ set_gdbarch_software_single_step (gdbarch, NULL); - /* Solaris encodes the pid of the inferior in regset section - names. */ - set_gdbarch_core_reg_section_encodes_pid (gdbarch, 1); + /* How to print LWP PTIDs from core files. */ + set_gdbarch_core_pid_to_str (gdbarch, sol2_core_pid_to_str); }