mirror of
https://github.com/bminor/binutils-gdb.git
synced 2025-12-05 15:15:42 +00:00
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:
committed by
Simon Marchi
parent
85e8a786f4
commit
c1663e3620
@@ -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);
|
||||
}
|
||||
|
||||
16
gdb/solib.c
16
gdb/solib.c
@@ -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 ();
|
||||
}
|
||||
|
||||
|
||||
@@ -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. */
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user