solib_ops (struct gdbarch *gdbarch)
{
struct target_so_ops **ops = gdbarch_data (gdbarch, solib_data);
+
return *ops;
}
set_solib_ops (struct gdbarch *gdbarch, struct target_so_ops *new_ops)
{
struct target_so_ops **ops = gdbarch_data (gdbarch, solib_data);
+
*ops = new_ops;
}
\f
if (solib_symbols_extension)
{
char *p = in_pathname + strlen (in_pathname);
+
while (p > in_pathname && *p != '.')
p--;
found_file = open (temp_pathname, O_RDONLY | O_BINARY, 0);
if (found_file < 0)
{
- char *p;
-
xfree (temp_pathname);
/* If the search in gdb_sysroot still failed, try fully
static void
free_so_symbols (struct so_list *so)
{
- char *bfd_filename = 0;
-
if (so->sections)
{
xfree (so->sections);
info_sharedlibrary_command (char *pattern, int from_tty)
{
struct so_list *so = NULL; /* link map state variable */
- int header_done = 0;
int so_missing_debug_info = 0;
int addr_width;
int nr_libs;
while (so_list_head)
{
struct so_list *so = so_list_head;
+
so_list_head = so->next;
observer_notify_solib_unloaded (so);
if (so->abfd)
solib_create_inferior_hook (int from_tty)
{
struct target_so_ops *ops = solib_ops (target_gdbarch);
+
ops->solib_create_inferior_hook (from_tty);
}
in_solib_dynsym_resolve_code (CORE_ADDR pc)
{
struct target_so_ops *ops = solib_ops (target_gdbarch);
+
return ops->in_dynsym_resolve_code (pc);
}
{
char *filename, *found_pathname = NULL;
bfd *abfd;
- int scratch_chan;
int was_loaded = so->symbols_loaded;
const int flags =
SYMFILE_DEFER_BP_RESET | (from_tty ? SYMFILE_VERBOSE : 0);
void
_initialize_solib (void)
{
- struct cmd_list_element *c;
-
solib_data = gdbarch_data_register_pre_init (solib_init);
add_com ("sharedlibrary", class_files, sharedlibrary_command,