/* Handle SunOS shared libraries for GDB, the GNU Debugger.
- Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998, 1999,
- 2000, 2001, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000,
+ 2001, 2004, 2007 Free Software Foundation, Inc.
This file is part of GDB.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA. */
+ Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA. */
#include "defs.h"
/* We are now either at the "mapping complete" breakpoint (or somewhere
else, a condition we aren't prepared to deal with anyway), so adjust
the PC as necessary after a breakpoint, disable the breakpoint, and
- add any shared libraries that were mapped in. */
+ add any shared libraries that were mapped in.
- if (DECR_PC_AFTER_BREAK)
+ Note that adjust_pc_after_break did not perform any PC adjustment,
+ as the breakpoint the inferior just hit was not inserted by GDB,
+ but by the dynamic loader itself, and is therefore not found on
+ the GDB software break point list. Thus we have to adjust the
+ PC here. */
+
+ if (gdbarch_decr_pc_after_break (current_gdbarch))
{
- stop_pc -= DECR_PC_AFTER_BREAK;
- write_register (PC_REGNUM, stop_pc);
+ stop_pc -= gdbarch_decr_pc_after_break (current_gdbarch);
+ write_pc (stop_pc);
}
if (!disable_break ())