/* Shared library support for IRIX.
- Copyright 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002
+ Copyright 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002, 2004
Free Software Foundation, Inc.
This file was created using portions of irix5-nat.c originally
#include "symtab.h"
#include "bfd.h"
+/* FIXME: ezannoni/2004-02-13 Verify that the include below is
+ really needed. */
#include "symfile.h"
#include "objfiles.h"
#include "gdbcore.h"
/* MIPS sign extends its 32 bit addresses. We could conceivably use
extract_typed_address here, but to do so, we'd have to construct an
- appropriate type. Calling extract_signed_integer or
- extract_address seems simpler. */
+ appropriate type. Calling extract_signed_integer seems simpler. */
static CORE_ADDR
extract_mips_address (void *addr, int len)
{
- if (len <= 32)
- return extract_signed_integer (addr, len);
- else
- return extract_address (addr, len);
+ return extract_signed_integer (addr, len);
}
/* Fetch and return the link map data associated with ADDR. Note that
status = 0;
}
- /* For the SVR4 version, we always know the breakpoint address. For the
- SunOS version we don't know it until the above code is executed.
- Grumble if we are stopped anywhere besides the breakpoint address. */
-
- if (stop_pc != breakpoint_addr)
- {
- warning
- ("stopped at unknown breakpoint while handling shared libraries");
- }
+ /* Note that it is possible that we have stopped at a location that
+ is different from the location where we inserted our breakpoint.
+ On mips-irix, we can actually land in __dbx_init(), so we should
+ not check the PC against our breakpoint address here. See procfs.c
+ for more details. */
return (status);
}
enable_break (void)
{
if (symfile_objfile != NULL
- && target_insert_breakpoint (symfile_objfile->ei.entry_point,
+ && target_insert_breakpoint (entry_point_address (),
shadow_contents) == 0)
{
- breakpoint_addr = symfile_objfile->ei.entry_point;
+ breakpoint_addr = entry_point_address ();
return 1;
}