/* Handle PA64 shared libraries for GDB, the GNU Debugger.
- Copyright (C) 2004, 2007, 2008, 2009 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
This file is part of GDB.
with shared libraries mapped shareable. */
static void
-pa64_solib_create_inferior_hook (void)
+pa64_solib_create_inferior_hook (int from_tty)
{
struct minimal_symbol *msymbol;
unsigned int dld_flags, status;
struct objfile *objfile;
CORE_ADDR anaddr;
- /* First, remove all the solib event breakpoints. Their addresses
- may have changed since the last time we ran the program. */
- remove_solib_event_breakpoints ();
-
if (symfile_objfile == NULL)
return;
#ifdef SOLIB_PA64_DBG
{
struct load_module_desc *d = &new->lm_info->desc;
+
printf ("\n+ library \"%s\" is described at index %d\n", new->so_name,
dll_index);
- printf (" text_base = 0x%llx\n", d->text_base);
- printf (" text_size = 0x%llx\n", d->text_size);
- printf (" data_base = 0x%llx\n", d->data_base);
- printf (" data_size = 0x%llx\n", d->data_size);
- printf (" unwind_base = 0x%llx\n", d->unwind_base);
- printf (" linkage_ptr = 0x%llx\n", d->linkage_ptr);
- printf (" phdr_base = 0x%llx\n", d->phdr_base);
- printf (" tls_size = 0x%llx\n", d->tls_size);
- printf (" tls_start_addr = 0x%llx\n", d->tls_start_addr);
- printf (" unwind_size = 0x%llx\n", d->unwind_size);
- printf (" tls_index = 0x%llx\n", d->tls_index);
+ printf (" text_base = %s\n", hex_string (d->text_base));
+ printf (" text_size = %s\n", hex_string (d->text_size));
+ printf (" data_base = %s\n", hex_string (d->data_base));
+ printf (" data_size = %s\n", hex_string (d->data_size));
+ printf (" unwind_base = %s\n", hex_string (d->unwind_base));
+ printf (" linkage_ptr = %s\n", hex_string (d->linkage_ptr));
+ printf (" phdr_base = %s\n", hex_string (d->phdr_base));
+ printf (" tls_size = %s\n", hex_string (d->tls_size));
+ printf (" tls_start_addr = %s\n", hex_string (d->tls_start_addr));
+ printf (" unwind_size = %s\n", hex_string (d->unwind_size));
+ printf (" tls_index = %s\n", hex_string (d->tls_index));
}
#endif
void pa64_solib_select (struct gdbarch *gdbarch)
{
struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
- set_solib_ops (gdbarch, &pa64_so_ops);
+ set_solib_ops (gdbarch, &pa64_so_ops);
tdep->solib_thread_start_addr = pa64_solib_thread_start_addr;
tdep->solib_get_got_by_pc = pa64_solib_get_got_by_pc;
tdep->solib_get_solib_by_pc = pa64_solib_get_solib_by_pc;