gdb: add program_space parameter to clear_solib

Make the current_program_space reference bubble up one level.

Remove one unnecessary declaration of clear_solib.

Change-Id: I234e2c8c0b71713364fc7b76cee2bee2b026bd6d
Approved-By: Andrew Burgess <aburgess@redhat.com>
This commit is contained in:
Simon Marchi
2024-02-07 11:53:22 -05:00
committed by Simon Marchi
parent 85e8a786f4
commit c1663e3620
4 changed files with 12 additions and 16 deletions

View File

@@ -335,7 +335,7 @@ core_target::clear_core ()
/* Clear out solib state while the bfd is still open. See
comments in clear_solib in solib.c. */
clear_solib ();
clear_solib (current_program_space);
current_program_space->cbfd.reset (nullptr);
}

View File

@@ -1180,23 +1180,23 @@ solib_keep_data_in_core (CORE_ADDR vaddr, unsigned long size)
return false;
}
/* Called by free_all_symtabs */
/* See solib.h. */
void
clear_solib (void)
clear_solib (program_space *pspace)
{
const solib_ops *ops = gdbarch_so_ops (current_inferior ()->arch ());
disable_breakpoints_in_shlibs (current_program_space);
disable_breakpoints_in_shlibs (pspace);
current_program_space->so_list.clear_and_dispose ([] (solib *so) {
notify_solib_unloaded (current_program_space, *so);
current_program_space->remove_target_sections (so);
pspace->so_list.clear_and_dispose ([pspace] (solib *so) {
notify_solib_unloaded (pspace, *so);
pspace->remove_target_sections (so);
delete so;
});
if (ops->clear_solib != nullptr)
ops->clear_solib (current_program_space);
ops->clear_solib (pspace);
}
/* Shared library startup support. When GDB starts up the inferior,
@@ -1244,7 +1244,7 @@ no_shared_libraries (const char *ignored, int from_tty)
access to their associated objfiles. Therefore, we can not purge the
solibs' objfiles before clear_solib has been called. */
clear_solib ();
clear_solib (current_program_space);
objfile_purge_solibs ();
}

View File

@@ -42,10 +42,10 @@ extern bool debug_solib;
#define SOLIB_SCOPED_DEBUG_START_END(fmt, ...) \
scoped_debug_start_end (debug_solib, "solib", fmt, ##__VA_ARGS__)
/* Called when we free all symtabs, to free the shared library information
as well. */
/* Called when we free all symtabs of PSPACE, to free the shared library
information as well. */
extern void clear_solib (void);
extern void clear_solib (program_space *pspace);
/* Called to add symbols from a shared library to gdb's symbol table. */

View File

@@ -2423,10 +2423,6 @@ extern bool find_line_pc_range (struct symtab_and_line, CORE_ADDR *,
extern void resolve_sal_pc (struct symtab_and_line *);
/* solib.c */
extern void clear_solib (void);
/* The reason we're calling into a completion match list collector
function. */
enum class complete_symbol_mode