/* Handle OSF/1, Digital UNIX, and Tru64 shared libraries
for GDB, the GNU Debugger.
- Copyright 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
+ Copyright (C) 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 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. */
/* When handling shared libraries, GDB has to find out the pathnames
of all shared libraries that are currently loaded (to read in their
target_read_string (lms->nameaddr, &name, PATH_MAX, &errcode);
if (errcode != 0)
{
- warning ("unable to read shared sec name at 0x%lx", lms->nameaddr);
+ warning (_("unable to read shared sec name at 0x%lx"), lms->nameaddr);
name = xstrdup ("");
}
lms->name = name;
out what we need to know about them. */
clear_proceed_status ();
- stop_soon_quietly = 1;
+ stop_soon = STOP_QUIETLY;
stop_signal = TARGET_SIGNAL_0;
do
{
But we are stopped in the runtime loader and we do not have symbols
for the runtime loader. So heuristic_proc_start will be called
and will put out an annoying warning.
- Delaying the resetting of stop_soon_quietly until after symbol loading
+ Delaying the resetting of stop_soon until after symbol loading
suppresses the warning. */
- if (auto_solib_add)
- solib_add ((char *) 0, 0, (struct target_ops *) 0);
- stop_soon_quietly = 0;
+ solib_add ((char *) 0, 0, (struct target_ops *) 0, auto_solib_add);
+ stop_soon = NO_STOP_QUIETLY;
/* Enable breakpoints disabled (unnecessarily) by clear_solib(). */
re_enable_breakpoints_in_shlibs ();
open_map (struct read_map_ctxt *ctxt)
{
#ifdef USE_LDR_ROUTINES
- ctxt->proc = ldr_my_process ();
+ /* Note: As originally written, ldr_my_process() was used to obtain
+ the value for ctxt->proc. This is incorrect, however, since
+ ldr_my_process() retrieves the "unique identifier" associated
+ with the current process (i.e. GDB) and not the one being
+ debugged. Presumably, the pid of the process being debugged is
+ compatible with the "unique identifier" used by the ldr_
+ routines, so we use that. */
+ ctxt->proc = ptid_get_pid (inferior_ptid);
if (ldr_xattach (ctxt->proc) != 0)
return 0;
ctxt->next = LDR_NULL_MODULE;
tail->next = NULL;
}
- done:
close_map (&ctxt);
return head;
}
static int
osf_in_dynsym_resolve_code (CORE_ADDR pc)
{
+ /* This function currently always return False. This is a temporary
+ solution which only consequence is to introduce a minor incovenience
+ for the user: When stepping inside a subprogram located in a shared
+ library, gdb might stop inside the dynamic loader code instead of
+ inside the subprogram itself. See the explanations in infrun.c about
+ the IN_SOLIB_DYNSYM_RESOLVE_CODE macro for more details. */
return 0;
}