gdb: rename struct so_list to shobj

Now that so_list lists are implemented using intrusive_list, it doesn't
really make sense for the element type to be named "_list".  Rename to
just `struct shobj` (`struct so` was deemed to be not greppable enough).

Change-Id: I1063061901298bb40fee73bf0cce44cd12154c0e
Approved-By: Pedro Alves <pedro@palves.net>
Reviewed-By: Reviewed-By: Lancelot Six <lancelot.six@amd.com>
This commit is contained in:
Simon Marchi 2023-10-17 15:37:58 -04:00
parent 30932f4012
commit 3fe0dfd160
25 changed files with 126 additions and 128 deletions

View file

@ -117,7 +117,7 @@ solib_catchpoint::check_status (struct bpstat *bs)
{ {
if (is_load) if (is_load)
{ {
for (so_list *iter : current_program_space->added_solibs) for (shobj *iter : current_program_space->added_solibs)
{ {
if (!regex if (!regex
|| compiled->exec (iter->so_name.c_str (), 0, nullptr, 0) == 0) || compiled->exec (iter->so_name.c_str (), 0, nullptr, 0) == 0)

View file

@ -5046,7 +5046,7 @@ print_solib_event (bool is_catchpoint)
current_uiout->text (_(" Inferior loaded ")); current_uiout->text (_(" Inferior loaded "));
ui_out_emit_list list_emitter (current_uiout, "added"); ui_out_emit_list list_emitter (current_uiout, "added");
bool first = true; bool first = true;
for (so_list *iter : current_program_space->added_solibs) for (shobj *iter : current_program_space->added_solibs)
{ {
if (!first) if (!first)
current_uiout->text (" "); current_uiout->text (" ");
@ -8018,8 +8018,7 @@ disable_breakpoints_in_shlibs (void)
disabled ones can just stay disabled. */ disabled ones can just stay disabled. */
static void static void
disable_breakpoints_in_unloaded_shlib (program_space *pspace, disable_breakpoints_in_unloaded_shlib (program_space *pspace, const shobj &solib)
const so_list &solib)
{ {
bool disabled_shlib_breaks = false; bool disabled_shlib_breaks = false;

View file

@ -275,7 +275,7 @@ static const char * const bsd_uthread_solib_names[] =
}; };
static void static void
bsd_uthread_solib_loaded (so_list &so) bsd_uthread_solib_loaded (shobj &so)
{ {
const char * const *names = bsd_uthread_solib_names; const char * const *names = bsd_uthread_solib_names;
@ -295,7 +295,7 @@ bsd_uthread_solib_loaded (so_list &so)
} }
static void static void
bsd_uthread_solib_unloaded (program_space *pspace, const so_list &so) bsd_uthread_solib_unloaded (program_space *pspace, const shobj &so)
{ {
if (bsd_uthread_solib_name.empty ()) if (bsd_uthread_solib_name.empty ())
return; return;

View file

@ -71,7 +71,7 @@ struct hppa_unwind_info
struct hppa_objfile_private struct hppa_objfile_private
{ {
struct hppa_unwind_info *unwind_info = nullptr; /* a pointer */ struct hppa_unwind_info *unwind_info = nullptr; /* a pointer */
struct so_list *so_info = nullptr; /* a pointer */ shobj *so_info = nullptr; /* a pointer */
CORE_ADDR dp = 0; CORE_ADDR dp = 0;
int dummy_call_sequence_reg = 0; int dummy_call_sequence_reg = 0;

View file

@ -24,7 +24,7 @@
struct trad_frame_saved_reg; struct trad_frame_saved_reg;
struct objfile; struct objfile;
struct so_list; struct shobj;
/* Register numbers of various important registers. */ /* Register numbers of various important registers. */
@ -114,7 +114,7 @@ struct hppa_gdbarch_tdep : gdbarch_tdep_base
/* These are solib-dependent methods. They are really HPUX only, but /* These are solib-dependent methods. They are really HPUX only, but
we don't have a HPUX-specific tdep vector at the moment. */ we don't have a HPUX-specific tdep vector at the moment. */
CORE_ADDR (*solib_thread_start_addr) (struct so_list *so) = nullptr; CORE_ADDR (*solib_thread_start_addr) (shobj *so) = nullptr;
CORE_ADDR (*solib_get_got_by_pc) (CORE_ADDR addr) = nullptr; CORE_ADDR (*solib_get_got_by_pc) (CORE_ADDR addr) = nullptr;
CORE_ADDR (*solib_get_solib_by_pc) (CORE_ADDR addr) = nullptr; CORE_ADDR (*solib_get_solib_by_pc) (CORE_ADDR addr) = nullptr;
CORE_ADDR (*solib_get_text_base) (struct objfile *objfile) = nullptr; CORE_ADDR (*solib_get_text_base) (struct objfile *objfile) = nullptr;

View file

@ -488,7 +488,7 @@ interps_notify_target_resumed (ptid_t ptid)
/* See interps.h. */ /* See interps.h. */
void void
interps_notify_solib_loaded (const so_list &so) interps_notify_solib_loaded (const shobj &so)
{ {
interps_notify (&interp::on_solib_loaded, so); interps_notify (&interp::on_solib_loaded, so);
} }
@ -496,7 +496,7 @@ interps_notify_solib_loaded (const so_list &so)
/* See interps.h. */ /* See interps.h. */
void void
interps_notify_solib_unloaded (const so_list &so) interps_notify_solib_unloaded (const shobj &so)
{ {
interps_notify (&interp::on_solib_unloaded, so); interps_notify (&interp::on_solib_unloaded, so);
} }

View file

@ -31,7 +31,7 @@ struct ui;
class completion_tracker; class completion_tracker;
struct thread_info; struct thread_info;
struct inferior; struct inferior;
struct so_list; struct shobj;
struct trace_state_variable; struct trace_state_variable;
typedef struct interp *(*interp_factory_func) (const char *name); typedef struct interp *(*interp_factory_func) (const char *name);
@ -147,10 +147,10 @@ public:
virtual void on_target_resumed (ptid_t ptid) {} virtual void on_target_resumed (ptid_t ptid) {}
/* Notify the interpreter that solib SO has been loaded. */ /* Notify the interpreter that solib SO has been loaded. */
virtual void on_solib_loaded (const so_list &so) {} virtual void on_solib_loaded (const shobj &so) {}
/* Notify the interpreter that solib SO has been unloaded. */ /* Notify the interpreter that solib SO has been unloaded. */
virtual void on_solib_unloaded (const so_list &so) {} virtual void on_solib_unloaded (const shobj &so) {}
/* Notify the interpreter that a command it is executing is about to cause /* Notify the interpreter that a command it is executing is about to cause
the inferior to proceed. */ the inferior to proceed. */
@ -324,10 +324,10 @@ extern void interps_notify_record_changed (inferior *inf, int started,
extern void interps_notify_target_resumed (ptid_t ptid); extern void interps_notify_target_resumed (ptid_t ptid);
/* Notify all interpreters that solib SO has been loaded. */ /* Notify all interpreters that solib SO has been loaded. */
extern void interps_notify_solib_loaded (const so_list &so); extern void interps_notify_solib_loaded (const shobj &so);
/* Notify all interpreters that solib SO has been unloaded. */ /* Notify all interpreters that solib SO has been unloaded. */
extern void interps_notify_solib_unloaded (const so_list &so); extern void interps_notify_solib_unloaded (const shobj &so);
/* Notify all interpreters that the selected traceframe changed. /* Notify all interpreters that the selected traceframe changed.

View file

@ -163,7 +163,7 @@ mi_cmd_file_list_shared_libraries (const char *command,
/* Print the table header. */ /* Print the table header. */
ui_out_emit_list list_emitter (uiout, "shared-libraries"); ui_out_emit_list list_emitter (uiout, "shared-libraries");
for (const so_list &so : current_program_space->solibs ()) for (const shobj &so : current_program_space->solibs ())
{ {
if (so.so_name.empty ()) if (so.so_name.empty ())
continue; continue;

View file

@ -724,7 +724,7 @@ mi_interp::on_target_resumed (ptid_t ptid)
/* See mi-interp.h. */ /* See mi-interp.h. */
void void
mi_output_solib_attribs (ui_out *uiout, const so_list &solib) mi_output_solib_attribs (ui_out *uiout, const shobj &solib)
{ {
gdbarch *gdbarch = current_inferior ()->arch (); gdbarch *gdbarch = current_inferior ()->arch ();
@ -745,7 +745,7 @@ mi_output_solib_attribs (ui_out *uiout, const so_list &solib)
} }
void void
mi_interp::on_solib_loaded (const so_list &solib) mi_interp::on_solib_loaded (const shobj &solib)
{ {
ui_out *uiout = this->interp_ui_out (); ui_out *uiout = this->interp_ui_out ();
@ -762,7 +762,7 @@ mi_interp::on_solib_loaded (const so_list &solib)
} }
void void
mi_interp::on_solib_unloaded (const so_list &solib) mi_interp::on_solib_unloaded (const shobj &solib)
{ {
ui_out *uiout = this->interp_ui_out (); ui_out *uiout = this->interp_ui_out ();

View file

@ -60,8 +60,8 @@ public:
void on_record_changed (inferior *inf, int started, const char *method, void on_record_changed (inferior *inf, int started, const char *method,
const char *format) override; const char *format) override;
void on_target_resumed (ptid_t ptid) override; void on_target_resumed (ptid_t ptid) override;
void on_solib_loaded (const so_list &so) override; void on_solib_loaded (const shobj &so) override;
void on_solib_unloaded (const so_list &so) override; void on_solib_unloaded (const shobj &so) override;
void on_about_to_proceed () override; void on_about_to_proceed () override;
void on_traceframe_changed (int tfnum, int tpnum) override; void on_traceframe_changed (int tfnum, int tpnum) override;
void on_tsv_created (const trace_state_variable *tsv) override; void on_tsv_created (const trace_state_variable *tsv) override;
@ -108,7 +108,7 @@ public:
/* Output the shared object attributes to UIOUT. */ /* Output the shared object attributes to UIOUT. */
void mi_output_solib_attribs (ui_out *uiout, const so_list &solib); void mi_output_solib_attribs (ui_out *uiout, const shobj &solib);
/* Returns the INTERP's data cast as mi_interp if INTERP is an MI, and /* Returns the INTERP's data cast as mi_interp if INTERP is an MI, and
returns NULL otherwise. */ returns NULL otherwise. */

View file

@ -245,7 +245,7 @@ nto_parse_redirection (char *pargv[], const char **pin, const char **pout,
} }
static CORE_ADDR static CORE_ADDR
lm_addr (const so_list &so) lm_addr (const shobj &so)
{ {
auto *li = gdb::checked_static_cast<const lm_info_svr4 *> (so.lm_info.get ()); auto *li = gdb::checked_static_cast<const lm_info_svr4 *> (so.lm_info.get ());
@ -283,7 +283,7 @@ find_load_phdr (bfd *abfd)
} }
void void
nto_relocate_section_addresses (so_list &so, target_section *sec) nto_relocate_section_addresses (shobj &so, target_section *sec)
{ {
/* Neutrino treats the l_addr base address field in link.h as different than /* Neutrino treats the l_addr base address field in link.h as different than
the base address in the System V ABI and so the offset needs to be the base address in the System V ABI and so the offset needs to be

View file

@ -166,7 +166,7 @@ void nto_init_solib_absolute_prefix (void);
char **nto_parse_redirection (char *start_argv[], const char **in, char **nto_parse_redirection (char *start_argv[], const char **in,
const char **out, const char **err); const char **out, const char **err);
void nto_relocate_section_addresses (so_list &, target_section *); void nto_relocate_section_addresses (shobj &, target_section *);
int nto_map_arch_to_cputype (const char *); int nto_map_arch_to_cputype (const char *);

View file

@ -24,7 +24,7 @@
#include "target/waitstatus.h" #include "target/waitstatus.h"
struct bpstat; struct bpstat;
struct so_list; struct shobj;
struct objfile; struct objfile;
struct thread_info; struct thread_info;
struct inferior; struct inferior;
@ -99,12 +99,12 @@ extern observable<inferior */* parent_inf */, inferior */* child_inf */,
/* The shared library specified by SOLIB has been loaded. Note that /* The shared library specified by SOLIB has been loaded. Note that
when gdb calls this observer, the library's symbols probably when gdb calls this observer, the library's symbols probably
haven't been loaded yet. */ haven't been loaded yet. */
extern observable<so_list &/* solib */> solib_loaded; extern observable<shobj &/* solib */> solib_loaded;
/* The shared library SOLIB has been unloaded from program space PSPACE. /* The shared library SOLIB has been unloaded from program space PSPACE.
Note when gdb calls this observer, the library's symbols have not Note when gdb calls this observer, the library's symbols have not
been unloaded yet, and thus are still available. */ been unloaded yet, and thus are still available. */
extern observable<program_space *, const so_list &/* solib */> solib_unloaded; extern observable<program_space *, const shobj &/* solib */> solib_unloaded;
/* The symbol file specified by OBJFILE has been loaded. */ /* The symbol file specified by OBJFILE has been loaded. */
extern observable<struct objfile */* objfile */> new_objfile; extern observable<struct objfile */* objfile */> new_objfile;

View file

@ -132,7 +132,7 @@ void
program_space::free_all_objfiles () program_space::free_all_objfiles ()
{ {
/* Any objfile reference would become stale. */ /* Any objfile reference would become stale. */
for (const struct so_list &so : current_program_space->solibs ()) for (const shobj &so : current_program_space->solibs ())
gdb_assert (so.objfile == NULL); gdb_assert (so.objfile == NULL);
while (!objfiles_list.empty ()) while (!objfiles_list.empty ())

View file

@ -39,7 +39,7 @@ struct inferior;
struct exec; struct exec;
struct address_space; struct address_space;
struct program_space; struct program_space;
struct so_list; struct shobj;
typedef std::list<std::unique_ptr<objfile>> objfile_list; typedef std::list<std::unique_ptr<objfile>> objfile_list;
@ -255,7 +255,7 @@ struct program_space
struct objfile *objfile_for_address (CORE_ADDR address); struct objfile *objfile_for_address (CORE_ADDR address);
/* Return the list of all the solibs in this program space. */ /* Return the list of all the solibs in this program space. */
intrusive_list<struct so_list> &solibs () intrusive_list<shobj> &solibs ()
{ return so_list; } { return so_list; }
/* Close and clear exec_bfd. If we end up with no target sections /* Close and clear exec_bfd. If we end up with no target sections
@ -359,14 +359,14 @@ struct program_space
/* List of shared objects mapped into this space. Managed by /* List of shared objects mapped into this space. Managed by
solib.c. */ solib.c. */
intrusive_list<struct so_list> so_list; intrusive_list<shobj> so_list;
/* Number of calls to solib_add. */ /* Number of calls to solib_add. */
unsigned int solib_add_generation = 0; unsigned int solib_add_generation = 0;
/* When an solib is added, it is also added to this vector. This /* When an solib is added, it is also added to this vector. This
is so we can properly report solib changes to the user. */ is so we can properly report solib changes to the user. */
std::vector<struct so_list *> added_solibs; std::vector<shobj *> added_solibs;
/* When an solib is removed, its name is added to this vector. /* When an solib is removed, its name is added to this vector.
This is so we can properly report solib changes to the user. */ This is so we can properly report solib changes to the user. */

View file

@ -26,7 +26,7 @@
#include "xcoffread.h" #include "xcoffread.h"
#include "observable.h" #include "observable.h"
/* Our private data in struct so_list. */ /* Our private data in struct shobj. */
struct lm_info_aix final : public lm_info struct lm_info_aix final : public lm_info
{ {
@ -311,7 +311,7 @@ solib_aix_bss_data_overlap (bfd *abfd)
/* Implement the "relocate_section_addresses" target_so_ops method. */ /* Implement the "relocate_section_addresses" target_so_ops method. */
static void static void
solib_aix_relocate_section_addresses (so_list &so, target_section *sec) solib_aix_relocate_section_addresses (shobj &so, target_section *sec)
{ {
struct bfd_section *bfd_sect = sec->the_bfd_section; struct bfd_section *bfd_sect = sec->the_bfd_section;
bfd *abfd = bfd_sect->owner; bfd *abfd = bfd_sect->owner;
@ -445,7 +445,7 @@ solib_aix_solib_create_inferior_hook (int from_tty)
/* Implement the "current_sos" target_so_ops method. */ /* Implement the "current_sos" target_so_ops method. */
static intrusive_list<so_list> static intrusive_list<shobj>
solib_aix_current_sos () solib_aix_current_sos ()
{ {
gdb::optional<std::vector<lm_info_aix>> &library_list gdb::optional<std::vector<lm_info_aix>> &library_list
@ -453,14 +453,14 @@ solib_aix_current_sos ()
if (!library_list.has_value ()) if (!library_list.has_value ())
return {}; return {};
intrusive_list<so_list> sos; intrusive_list<shobj> sos;
/* Build a struct so_list for each entry on the list. /* Build a struct shobj for each entry on the list.
We skip the first entry, since this is the entry corresponding We skip the first entry, since this is the entry corresponding
to the main executable, not a shared library. */ to the main executable, not a shared library. */
for (int ix = 1; ix < library_list->size (); ix++) for (int ix = 1; ix < library_list->size (); ix++)
{ {
so_list *new_solib = new so_list; shobj *new_solib = new shobj;
std::string so_name; std::string so_name;
lm_info_aix &info = (*library_list)[ix]; lm_info_aix &info = (*library_list)[ix];

View file

@ -212,7 +212,7 @@ open_symbol_file_object (int from_tty)
/* Build a list of currently loaded shared objects. See solib-svr4.c. */ /* Build a list of currently loaded shared objects. See solib-svr4.c. */
static intrusive_list<so_list> static intrusive_list<shobj>
darwin_current_sos () darwin_current_sos ()
{ {
type *ptr_type type *ptr_type
@ -230,7 +230,7 @@ darwin_current_sos ()
image_info_size = ptr_len * 3; image_info_size = ptr_len * 3;
intrusive_list<so_list> sos; intrusive_list<shobj> sos;
/* Read infos for each solib. /* Read infos for each solib.
The first entry was rumored to be the executable itself, but this is not The first entry was rumored to be the executable itself, but this is not
@ -271,8 +271,8 @@ darwin_current_sos ()
if (file_path == nullptr) if (file_path == nullptr)
break; break;
/* Create and fill the new so_list element. */ /* Create and fill the new struct shobj element. */
so_list *newobj = new so_list; shobj *newobj = new shobj;
auto li = gdb::make_unique<lm_info_darwin> (); auto li = gdb::make_unique<lm_info_darwin> ();
@ -605,7 +605,7 @@ darwin_clear_solib (program_space *pspace)
Relocate these VMAs according to solib info. */ Relocate these VMAs according to solib info. */
static void static void
darwin_relocate_section_addresses (so_list &so, target_section *sec) darwin_relocate_section_addresses (shobj &so, target_section *sec)
{ {
auto *li = gdb::checked_static_cast<lm_info_darwin *> (so.lm_info.get ()); auto *li = gdb::checked_static_cast<lm_info_darwin *> (so.lm_info.get ());

View file

@ -503,22 +503,22 @@ lm_base (void)
} }
/* Build a list of `struct so_list' objects describing the shared /* Build a list of `struct shobj' objects describing the shared
objects currently loaded in the inferior. This list does not objects currently loaded in the inferior. This list does not
include an entry for the main executable file. include an entry for the main executable file.
Note that we only gather information directly available from the Note that we only gather information directly available from the
inferior --- we don't examine any of the shared library files inferior --- we don't examine any of the shared library files
themselves. The declaration of `struct so_list' says which fields themselves. The declaration of `struct shobj' says which fields
we provide values for. */ we provide values for. */
static intrusive_list<so_list> static intrusive_list<shobj>
dsbt_current_sos (void) dsbt_current_sos (void)
{ {
bfd_endian byte_order = gdbarch_byte_order (current_inferior ()->arch ()); bfd_endian byte_order = gdbarch_byte_order (current_inferior ()->arch ());
CORE_ADDR lm_addr; CORE_ADDR lm_addr;
dsbt_info *info = get_dsbt_info (current_program_space); dsbt_info *info = get_dsbt_info (current_program_space);
intrusive_list<so_list> sos; intrusive_list<shobj> sos;
/* Make sure that the main executable has been relocated. This is /* Make sure that the main executable has been relocated. This is
required in order to find the address of the global offset table, required in order to find the address of the global offset table,
@ -593,7 +593,7 @@ dsbt_current_sos (void)
break; break;
} }
so_list *sop = new so_list; shobj *sop = new shobj;
auto li = gdb::make_unique<lm_info_dsbt> (); auto li = gdb::make_unique<lm_info_dsbt> ();
li->map = loadmap; li->map = loadmap;
/* Fetch the name. */ /* Fetch the name. */
@ -876,7 +876,7 @@ dsbt_clear_solib (program_space *pspace)
} }
static void static void
dsbt_relocate_section_addresses (so_list &so, target_section *sec) dsbt_relocate_section_addresses (shobj &so, target_section *sec)
{ {
int seg; int seg;
auto *li = gdb::checked_static_cast<lm_info_dsbt *> (so.lm_info.get ()); auto *li = gdb::checked_static_cast<lm_info_dsbt *> (so.lm_info.get ());

View file

@ -306,12 +306,12 @@ lm_base (void)
/* Implement the "current_sos" target_so_ops method. */ /* Implement the "current_sos" target_so_ops method. */
static intrusive_list<so_list> static intrusive_list<shobj>
frv_current_sos () frv_current_sos ()
{ {
bfd_endian byte_order = gdbarch_byte_order (current_inferior ()->arch ()); bfd_endian byte_order = gdbarch_byte_order (current_inferior ()->arch ());
CORE_ADDR lm_addr, mgot; CORE_ADDR lm_addr, mgot;
intrusive_list<so_list> sos; intrusive_list<shobj> sos;
/* Make sure that the main executable has been relocated. This is /* Make sure that the main executable has been relocated. This is
required in order to find the address of the global offset table, required in order to find the address of the global offset table,
@ -376,7 +376,7 @@ frv_current_sos ()
break; break;
} }
so_list *sop = new so_list; shobj *sop = new shobj;
auto li = gdb::make_unique<lm_info_frv> (); auto li = gdb::make_unique<lm_info_frv> ();
li->map = loadmap; li->map = loadmap;
li->got_value = got_addr; li->got_value = got_addr;
@ -811,7 +811,7 @@ frv_clear_solib (program_space *pspace)
} }
static void static void
frv_relocate_section_addresses (so_list &so, target_section *sec) frv_relocate_section_addresses (shobj &so, target_section *sec)
{ {
int seg; int seg;
auto *li = gdb::checked_static_cast<lm_info_frv *> (so.lm_info.get ()); auto *li = gdb::checked_static_cast<lm_info_frv *> (so.lm_info.get ());
@ -852,7 +852,7 @@ main_got (void)
CORE_ADDR CORE_ADDR
frv_fdpic_find_global_pointer (CORE_ADDR addr) frv_fdpic_find_global_pointer (CORE_ADDR addr)
{ {
for (const so_list &so : current_program_space->solibs ()) for (const shobj &so : current_program_space->solibs ())
{ {
int seg; int seg;
auto *li = gdb::checked_static_cast<lm_info_frv *> (so.lm_info.get ()); auto *li = gdb::checked_static_cast<lm_info_frv *> (so.lm_info.get ());
@ -909,7 +909,7 @@ frv_fdpic_find_canonical_descriptor (CORE_ADDR entry_point)
in list of shared objects. */ in list of shared objects. */
if (addr == 0) if (addr == 0)
{ {
for (const so_list &so : current_program_space->solibs ()) for (const shobj &so : current_program_space->solibs ())
{ {
auto *li = gdb::checked_static_cast<lm_info_frv *> (so.lm_info.get ()); auto *li = gdb::checked_static_cast<lm_info_frv *> (so.lm_info.get ());
@ -1061,7 +1061,7 @@ frv_fetch_objfile_link_map (struct objfile *objfile)
/* The other link map addresses may be found by examining the list /* The other link map addresses may be found by examining the list
of shared libraries. */ of shared libraries. */
for (const so_list &so : current_program_space->solibs ()) for (const shobj &so : current_program_space->solibs ())
{ {
auto *li = gdb::checked_static_cast<lm_info_frv *> (so.lm_info.get ()); auto *li = gdb::checked_static_cast<lm_info_frv *> (so.lm_info.get ());

View file

@ -172,7 +172,7 @@ get_solib_info (inferior *inf)
/* Relocate section addresses. */ /* Relocate section addresses. */
static void static void
rocm_solib_relocate_section_addresses (so_list &so, rocm_solib_relocate_section_addresses (shobj &so,
struct target_section *sec) struct target_section *sec)
{ {
if (!is_amdgpu_arch (gdbarch_from_bfd (so.abfd.get ()))) if (!is_amdgpu_arch (gdbarch_from_bfd (so.abfd.get ())))
@ -204,14 +204,14 @@ rocm_solib_handle_event ()
/* Create so_list objects from rocm_so objects in SOS. */ /* Create so_list objects from rocm_so objects in SOS. */
static intrusive_list<so_list> static intrusive_list<shobj>
so_list_from_rocm_sos (const std::vector<rocm_so> &sos) so_list_from_rocm_sos (const std::vector<rocm_so> &sos)
{ {
intrusive_list<so_list> dst; intrusive_list<shobj> dst;
for (const rocm_so &so : sos) for (const rocm_so &so : sos)
{ {
so_list *newobj = new so_list; struct shobj *newobj = new struct shobj;
newobj->lm_info = gdb::make_unique<lm_info_svr4> (*so.lm_info); newobj->lm_info = gdb::make_unique<lm_info_svr4> (*so.lm_info);
newobj->so_name = so.name; newobj->so_name = so.name;
@ -223,14 +223,14 @@ so_list_from_rocm_sos (const std::vector<rocm_so> &sos)
return dst; return dst;
} }
/* Build a list of `struct so_list' objects describing the shared /* Build a list of `struct shobj' objects describing the shared
objects currently loaded in the inferior. */ objects currently loaded in the inferior. */
static intrusive_list<so_list> static intrusive_list<shobj>
rocm_solib_current_sos () rocm_solib_current_sos ()
{ {
/* First, retrieve the host-side shared library list. */ /* First, retrieve the host-side shared library list. */
intrusive_list<so_list> sos = svr4_so_ops.current_sos (); intrusive_list<shobj> sos = svr4_so_ops.current_sos ();
/* Then, the device-side shared library list. */ /* Then, the device-side shared library list. */
std::vector<rocm_so> &dev_sos = get_solib_info (current_inferior ())->solib_list; std::vector<rocm_so> &dev_sos = get_solib_info (current_inferior ())->solib_list;
@ -238,7 +238,7 @@ rocm_solib_current_sos ()
if (dev_sos.empty ()) if (dev_sos.empty ())
return sos; return sos;
intrusive_list<so_list> dev_so_list = so_list_from_rocm_sos (dev_sos); intrusive_list<shobj> dev_so_list = so_list_from_rocm_sos (dev_sos);
if (sos.empty ()) if (sos.empty ())
return dev_so_list; return dev_so_list;

View file

@ -186,7 +186,7 @@ svr4_same (const char *gdb_name, const char *inferior_name,
} }
static int static int
svr4_same (const so_list &gdb, const so_list &inferior) svr4_same (const shobj &gdb, const shobj &inferior)
{ {
auto *lmg auto *lmg
= gdb::checked_static_cast<const lm_info_svr4 *> (gdb.lm_info.get ()); = gdb::checked_static_cast<const lm_info_svr4 *> (gdb.lm_info.get ());
@ -239,7 +239,7 @@ has_lm_dynamic_from_link_map (void)
} }
static CORE_ADDR static CORE_ADDR
lm_addr_check (const so_list &so, bfd *abfd) lm_addr_check (const shobj &so, bfd *abfd)
{ {
auto *li = gdb::checked_static_cast<lm_info_svr4 *> (so.lm_info.get ()); auto *li = gdb::checked_static_cast<lm_info_svr4 *> (so.lm_info.get ());
@ -980,7 +980,7 @@ svr4_free_objfile_observer (struct objfile *objfile)
/* Implement target_so_ops.clear_so. */ /* Implement target_so_ops.clear_so. */
static void static void
svr4_clear_so (const so_list &so) svr4_clear_so (const shobj &so)
{ {
auto *li = gdb::checked_static_cast<lm_info_svr4 *> (so.lm_info.get ()); auto *li = gdb::checked_static_cast<lm_info_svr4 *> (so.lm_info.get ());
@ -990,14 +990,14 @@ svr4_clear_so (const so_list &so)
/* Create the so_list objects equivalent to the svr4_sos in SOS. */ /* Create the so_list objects equivalent to the svr4_sos in SOS. */
static intrusive_list<so_list> static intrusive_list<shobj>
so_list_from_svr4_sos (const std::vector<svr4_so> &sos) so_list_from_svr4_sos (const std::vector<svr4_so> &sos)
{ {
intrusive_list<so_list> dst; intrusive_list<shobj> dst;
for (const svr4_so &so : sos) for (const svr4_so &so : sos)
{ {
so_list *newobj = new so_list; struct shobj *newobj = new struct shobj;
newobj->so_name = so.name; newobj->so_name = so.name;
newobj->so_original_name = so.name; newobj->so_original_name = so.name;
@ -1183,13 +1183,13 @@ svr4_current_sos_via_xfer_libraries (struct svr4_library_list *list,
/* If no shared library information is available from the dynamic /* If no shared library information is available from the dynamic
linker, build a fallback list from other sources. */ linker, build a fallback list from other sources. */
static intrusive_list<so_list> static intrusive_list<shobj>
svr4_default_sos (svr4_info *info) svr4_default_sos (svr4_info *info)
{ {
if (!info->debug_loader_offset_p) if (!info->debug_loader_offset_p)
return {}; return {};
so_list *newobj = new so_list; shobj *newobj = new shobj;
auto li = gdb::make_unique<lm_info_svr4> (); auto li = gdb::make_unique<lm_info_svr4> ();
/* Nothing will ever check the other fields if we set l_addr_p. */ /* Nothing will ever check the other fields if we set l_addr_p. */
@ -1200,7 +1200,7 @@ svr4_default_sos (svr4_info *info)
newobj->so_name = info->debug_loader_name; newobj->so_name = info->debug_loader_name;
newobj->so_original_name = newobj->so_name; newobj->so_original_name = newobj->so_name;
intrusive_list<so_list> sos; intrusive_list<shobj> sos;
sos.push_back (*newobj); sos.push_back (*newobj);
return sos; return sos;
@ -1372,10 +1372,10 @@ svr4_current_sos_direct (struct svr4_info *info)
/* Collect sos read and stored by the probes interface. */ /* Collect sos read and stored by the probes interface. */
static intrusive_list<so_list> static intrusive_list<shobj>
svr4_collect_probes_sos (svr4_info *info) svr4_collect_probes_sos (svr4_info *info)
{ {
intrusive_list<so_list> res; intrusive_list<shobj> res;
for (const auto &tuple : info->solib_lists) for (const auto &tuple : info->solib_lists)
{ {
@ -1389,10 +1389,10 @@ svr4_collect_probes_sos (svr4_info *info)
/* Implement the main part of the "current_sos" target_so_ops /* Implement the main part of the "current_sos" target_so_ops
method. */ method. */
static intrusive_list<so_list> static intrusive_list<shobj>
svr4_current_sos_1 (svr4_info *info) svr4_current_sos_1 (svr4_info *info)
{ {
intrusive_list<so_list> sos; intrusive_list<shobj> sos;
/* If we're using the probes interface, we can use the cache as it will /* If we're using the probes interface, we can use the cache as it will
be maintained by probe update/reload actions. */ be maintained by probe update/reload actions. */
@ -1416,11 +1416,11 @@ svr4_current_sos_1 (svr4_info *info)
/* Implement the "current_sos" target_so_ops method. */ /* Implement the "current_sos" target_so_ops method. */
static intrusive_list<so_list> static intrusive_list<shobj>
svr4_current_sos () svr4_current_sos ()
{ {
svr4_info *info = get_svr4_info (current_program_space); svr4_info *info = get_svr4_info (current_program_space);
intrusive_list<so_list> sos = svr4_current_sos_1 (info); intrusive_list<shobj> sos = svr4_current_sos_1 (info);
struct mem_range vsyscall_range; struct mem_range vsyscall_range;
/* Filter out the vDSO module, if present. Its symbol file would /* Filter out the vDSO module, if present. Its symbol file would
@ -1507,7 +1507,7 @@ svr4_fetch_objfile_link_map (struct objfile *objfile)
/* The other link map addresses may be found by examining the list /* The other link map addresses may be found by examining the list
of shared libraries. */ of shared libraries. */
for (const so_list &so : current_program_space->solibs ()) for (const shobj &so : current_program_space->solibs ())
if (so.objfile == objfile) if (so.objfile == objfile)
{ {
auto *li auto *li
@ -2348,7 +2348,7 @@ enable_break (struct svr4_info *info, int from_tty)
/* On a running target, we can get the dynamic linker's base /* On a running target, we can get the dynamic linker's base
address from the shared library table. */ address from the shared library table. */
for (const so_list &so : current_program_space->solibs ()) for (const shobj &so : current_program_space->solibs ())
{ {
if (svr4_same_1 (interp_name, so.so_original_name.c_str ())) if (svr4_same_1 (interp_name, so.so_original_name.c_str ()))
{ {
@ -3097,7 +3097,7 @@ svr4_truncate_ptr (CORE_ADDR addr)
static void static void
svr4_relocate_section_addresses (so_list &so, target_section *sec) svr4_relocate_section_addresses (shobj &so, target_section *sec)
{ {
bfd *abfd = sec->the_bfd_section->owner; bfd *abfd = sec->the_bfd_section->owner;
@ -3238,7 +3238,7 @@ svr4_lp64_fetch_link_map_offsets (void)
/* Return the DSO matching OBJFILE or nullptr if none can be found. */ /* Return the DSO matching OBJFILE or nullptr if none can be found. */
static const so_list * static const shobj *
find_solib_for_objfile (struct objfile *objfile) find_solib_for_objfile (struct objfile *objfile)
{ {
if (objfile == nullptr) if (objfile == nullptr)
@ -3249,7 +3249,7 @@ find_solib_for_objfile (struct objfile *objfile)
if (objfile->separate_debug_objfile_backlink != nullptr) if (objfile->separate_debug_objfile_backlink != nullptr)
objfile = objfile->separate_debug_objfile_backlink; objfile = objfile->separate_debug_objfile_backlink;
for (const so_list &so : current_program_space->solibs ()) for (const shobj &so : current_program_space->solibs ())
if (so.objfile == objfile) if (so.objfile == objfile)
return &so; return &so;
@ -3264,7 +3264,7 @@ find_solib_for_objfile (struct objfile *objfile)
right thing for the main executable. */ right thing for the main executable. */
static CORE_ADDR static CORE_ADDR
find_debug_base_for_solib (const so_list *solib) find_debug_base_for_solib (const shobj *solib)
{ {
if (solib == nullptr) if (solib == nullptr)
return 0; return 0;
@ -3325,7 +3325,7 @@ svr4_iterate_over_objfiles_in_search_order
/* The linker namespace to iterate identified by the address of its /* The linker namespace to iterate identified by the address of its
r_debug object, defaulting to the initial namespace. */ r_debug object, defaulting to the initial namespace. */
CORE_ADDR initial = elf_locate_base (); CORE_ADDR initial = elf_locate_base ();
const so_list *curr_solib = find_solib_for_objfile (current_objfile); const shobj *curr_solib = find_solib_for_objfile (current_objfile);
CORE_ADDR debug_base = find_debug_base_for_solib (curr_solib); CORE_ADDR debug_base = find_debug_base_for_solib (curr_solib);
if (debug_base == 0) if (debug_base == 0)
debug_base = initial; debug_base = initial;
@ -3340,7 +3340,7 @@ svr4_iterate_over_objfiles_in_search_order
If we fail, e.g. for manually added symbol files or for the main If we fail, e.g. for manually added symbol files or for the main
executable, we assume that they were added to the initial executable, we assume that they were added to the initial
namespace. */ namespace. */
const so_list *solib = find_solib_for_objfile (objfile); const shobj *solib = find_solib_for_objfile (objfile);
CORE_ADDR solib_base = find_debug_base_for_solib (solib); CORE_ADDR solib_base = find_debug_base_for_solib (solib);
if (solib_base == 0) if (solib_base == 0)
solib_base = initial; solib_base = initial;

View file

@ -227,10 +227,10 @@ solib_target_parse_libraries (const char *library)
} }
#endif #endif
static intrusive_list<so_list> static intrusive_list<shobj>
solib_target_current_sos (void) solib_target_current_sos (void)
{ {
intrusive_list<so_list> sos; intrusive_list<shobj> sos;
/* Fetch the list of shared libraries. */ /* Fetch the list of shared libraries. */
gdb::optional<gdb::char_vector> library_document gdb::optional<gdb::char_vector> library_document
@ -243,10 +243,10 @@ solib_target_current_sos (void)
std::vector<lm_info_target_up> library_list std::vector<lm_info_target_up> library_list
= solib_target_parse_libraries (library_document->data ()); = solib_target_parse_libraries (library_document->data ());
/* Build a struct so_list for each entry on the list. */ /* Build a struct shobj for each entry on the list. */
for (lm_info_target_up &info : library_list) for (lm_info_target_up &info : library_list)
{ {
so_list *new_solib = new so_list; shobj *new_solib = new shobj;
/* We don't need a copy of the name in INFO anymore. */ /* We don't need a copy of the name in INFO anymore. */
new_solib->so_name = std::move (info->name); new_solib->so_name = std::move (info->name);
@ -267,7 +267,7 @@ solib_target_solib_create_inferior_hook (int from_tty)
} }
static void static void
solib_target_relocate_section_addresses (so_list &so, target_section *sec) solib_target_relocate_section_addresses (shobj &so, target_section *sec)
{ {
CORE_ADDR offset; CORE_ADDR offset;
auto *li = gdb::checked_static_cast<lm_info_target *> (so.lm_info.get ()); auto *li = gdb::checked_static_cast<lm_info_target *> (so.lm_info.get ());

View file

@ -539,7 +539,7 @@ get_cbfd_soname_build_id (gdb_bfd_ref_ptr abfd, const char *soname)
expansion stuff?). */ expansion stuff?). */
static int static int
solib_map_sections (so_list &so) solib_map_sections (shobj &so)
{ {
const target_so_ops *ops = gdbarch_so_ops (current_inferior ()->arch ()); const target_so_ops *ops = gdbarch_so_ops (current_inferior ()->arch ());
@ -626,7 +626,7 @@ solib_map_sections (so_list &so)
/* See solist.h. */ /* See solist.h. */
void void
so_list::clear () shobj::clear ()
{ {
const target_so_ops *ops = gdbarch_so_ops (current_inferior ()->arch ()); const target_so_ops *ops = gdbarch_so_ops (current_inferior ()->arch ());
@ -654,7 +654,7 @@ lm_info::~lm_info () = default;
be chatty about it. Return true if any symbols were actually loaded. */ be chatty about it. Return true if any symbols were actually loaded. */
bool bool
solib_read_symbols (so_list &so, symfile_add_flags flags) solib_read_symbols (shobj &so, symfile_add_flags flags)
{ {
if (so.symbols_loaded) if (so.symbols_loaded)
{ {
@ -715,9 +715,9 @@ solib_read_symbols (so_list &so, symfile_add_flags flags)
in the list of shared libraries. Return false otherwise. */ in the list of shared libraries. Return false otherwise. */
static bool static bool
solib_used (const so_list &known) solib_used (const shobj &known)
{ {
for (const so_list &pivot : current_program_space->solibs ()) for (const shobj &pivot : current_program_space->solibs ())
if (&pivot != &known && pivot.objfile == known.objfile) if (&pivot != &known && pivot.objfile == known.objfile)
return true; return true;
return false; return false;
@ -726,7 +726,7 @@ solib_used (const so_list &known)
/* Notify interpreters and observers that solib SO has been loaded. */ /* Notify interpreters and observers that solib SO has been loaded. */
static void static void
notify_solib_loaded (so_list &so) notify_solib_loaded (shobj &so)
{ {
interps_notify_solib_loaded (so); interps_notify_solib_loaded (so);
gdb::observers::solib_loaded.notify (so); gdb::observers::solib_loaded.notify (so);
@ -735,7 +735,7 @@ notify_solib_loaded (so_list &so)
/* Notify interpreters and observers that solib SO has been unloaded. */ /* Notify interpreters and observers that solib SO has been unloaded. */
static void static void
notify_solib_unloaded (program_space *pspace, const so_list &so) notify_solib_unloaded (program_space *pspace, const shobj &so)
{ {
interps_notify_solib_unloaded (so); interps_notify_solib_unloaded (so);
gdb::observers::solib_unloaded.notify (pspace, so); gdb::observers::solib_unloaded.notify (pspace, so);
@ -797,12 +797,12 @@ update_solib_list (int from_tty)
the time we're done walking GDB's list, the inferior's list the time we're done walking GDB's list, the inferior's list
contains only the new shared objects, which we then add. */ contains only the new shared objects, which we then add. */
intrusive_list<so_list> inferior = ops->current_sos (); intrusive_list<shobj> inferior = ops->current_sos ();
intrusive_list<so_list>::iterator gdb_iter intrusive_list<shobj>::iterator gdb_iter
= current_program_space->so_list.begin (); = current_program_space->so_list.begin ();
while (gdb_iter != current_program_space->so_list.end ()) while (gdb_iter != current_program_space->so_list.end ())
{ {
intrusive_list<so_list>::iterator inferior_iter = inferior.begin (); intrusive_list<shobj>::iterator inferior_iter = inferior.begin ();
/* Check to see whether the shared object *gdb also appears in /* Check to see whether the shared object *gdb also appears in
the inferior's current list. */ the inferior's current list. */
@ -840,7 +840,7 @@ update_solib_list (int from_tty)
current_program_space->deleted_solibs.push_back (gdb_iter->so_name); current_program_space->deleted_solibs.push_back (gdb_iter->so_name);
intrusive_list<so_list>::iterator gdb_iter_next intrusive_list<shobj>::iterator gdb_iter_next
= current_program_space->so_list.erase (gdb_iter); = current_program_space->so_list.erase (gdb_iter);
/* Unless the user loaded it explicitly, free SO's objfile. */ /* Unless the user loaded it explicitly, free SO's objfile. */
@ -866,14 +866,14 @@ update_solib_list (int from_tty)
int not_found = 0; int not_found = 0;
const char *not_found_filename = NULL; const char *not_found_filename = NULL;
/* Fill in the rest of each of the `struct so_list' nodes. */ /* Fill in the rest of each of the `so' nodes. */
for (so_list &new_so : inferior) for (shobj &new_so : inferior)
{ {
current_program_space->added_solibs.push_back (&new_so); current_program_space->added_solibs.push_back (&new_so);
try try
{ {
/* Fill in the rest of the `struct so_list' node. */ /* Fill in the rest of the `struct shobj' node. */
if (!solib_map_sections (new_so)) if (!solib_map_sections (new_so))
{ {
not_found++; not_found++;
@ -939,7 +939,7 @@ libpthread_name_p (const char *name)
/* Return non-zero if SO is the libpthread shared library. */ /* Return non-zero if SO is the libpthread shared library. */
static bool static bool
libpthread_solib_p (const so_list &so) libpthread_solib_p (const shobj &so)
{ {
return libpthread_name_p (so.so_name.c_str ()); return libpthread_name_p (so.so_name.c_str ());
} }
@ -990,7 +990,7 @@ solib_add (const char *pattern, int from_tty, int readsyms)
if (from_tty) if (from_tty)
add_flags |= SYMFILE_VERBOSE; add_flags |= SYMFILE_VERBOSE;
for (so_list &gdb : current_program_space->solibs ()) for (shobj &gdb : current_program_space->solibs ())
if (! pattern || re_exec (gdb.so_name.c_str ())) if (! pattern || re_exec (gdb.so_name.c_str ()))
{ {
/* Normally, we would read the symbols from that library /* Normally, we would read the symbols from that library
@ -1064,7 +1064,7 @@ info_sharedlibrary_command (const char *pattern, int from_tty)
so we need to make two passes over the libs. */ so we need to make two passes over the libs. */
nr_libs = 0; nr_libs = 0;
for (const so_list &so : current_program_space->solibs ()) for (const shobj &so : current_program_space->solibs ())
{ {
if (!so.so_name.empty ()) if (!so.so_name.empty ())
{ {
@ -1085,7 +1085,7 @@ info_sharedlibrary_command (const char *pattern, int from_tty)
uiout->table_body (); uiout->table_body ();
for (const so_list &so : current_program_space->solibs ()) for (const shobj &so : current_program_space->solibs ())
{ {
if (so.so_name.empty ()) if (so.so_name.empty ())
continue; continue;
@ -1140,8 +1140,7 @@ info_sharedlibrary_command (const char *pattern, int from_tty)
/* See solib.h. */ /* See solib.h. */
bool bool
solib_contains_address_p (const so_list &solib, solib_contains_address_p (const shobj &solib, CORE_ADDR address)
CORE_ADDR address)
{ {
for (const target_section &p : solib.sections) for (const target_section &p : solib.sections)
if (p.addr <= address && address < p.endaddr) if (p.addr <= address && address < p.endaddr)
@ -1164,7 +1163,7 @@ solib_contains_address_p (const so_list &solib,
const char * const char *
solib_name_from_address (struct program_space *pspace, CORE_ADDR address) solib_name_from_address (struct program_space *pspace, CORE_ADDR address)
{ {
for (const so_list &so : pspace->so_list) for (const shobj &so : pspace->so_list)
if (solib_contains_address_p (so, address)) if (solib_contains_address_p (so, address))
return so.so_name.c_str (); return so.so_name.c_str ();
@ -1193,7 +1192,7 @@ clear_solib (void)
disable_breakpoints_in_shlibs (); disable_breakpoints_in_shlibs ();
current_program_space->so_list.clear_and_dispose ([] (so_list *so) current_program_space->so_list.clear_and_dispose ([] (shobj *so)
{ {
notify_solib_unloaded (current_program_space, *so); notify_solib_unloaded (current_program_space, *so);
current_program_space->remove_target_sections (&so); current_program_space->remove_target_sections (&so);
@ -1294,7 +1293,7 @@ reload_shared_libraries_1 (int from_tty)
if (print_symbol_loading_p (from_tty, 0, 0)) if (print_symbol_loading_p (from_tty, 0, 0))
gdb_printf (_("Loading symbols for shared libraries.\n")); gdb_printf (_("Loading symbols for shared libraries.\n"));
for (so_list &so : current_program_space->solibs ()) for (shobj &so : current_program_space->solibs ())
{ {
const char *found_pathname = NULL; const char *found_pathname = NULL;
bool was_loaded = so.symbols_loaded != 0; bool was_loaded = so.symbols_loaded != 0;
@ -1701,7 +1700,7 @@ remove_user_added_objfile (struct objfile *objfile)
{ {
if (objfile != 0 && objfile->flags & OBJF_USERLOADED) if (objfile != 0 && objfile->flags & OBJF_USERLOADED)
{ {
for (so_list &so : objfile->pspace->solibs ()) for (shobj &so : objfile->pspace->solibs ())
if (so.objfile == objfile) if (so.objfile == objfile)
so.objfile = nullptr; so.objfile = nullptr;
} }

View file

@ -21,7 +21,7 @@
#define SOLIB_H #define SOLIB_H
/* Forward decl's for prototypes */ /* Forward decl's for prototypes */
struct so_list; struct shobj;
struct target_ops; struct target_ops;
struct target_so_ops; struct target_so_ops;
struct program_space; struct program_space;
@ -50,7 +50,7 @@ extern void clear_solib (void);
/* Called to add symbols from a shared library to gdb's symbol table. */ /* Called to add symbols from a shared library to gdb's symbol table. */
extern void solib_add (const char *, int, int); extern void solib_add (const char *, int, int);
extern bool solib_read_symbols (so_list &, symfile_add_flags); extern bool solib_read_symbols (shobj &, symfile_add_flags);
/* Function to be called when the inferior starts up, to discover the /* Function to be called when the inferior starts up, to discover the
names of shared libraries that are dynamically linked, the base names of shared libraries that are dynamically linked, the base
@ -65,7 +65,7 @@ extern const char *solib_name_from_address (struct program_space *, CORE_ADDR);
/* Return true if ADDR lies within SOLIB. */ /* Return true if ADDR lies within SOLIB. */
extern bool solib_contains_address_p (const so_list &, CORE_ADDR); extern bool solib_contains_address_p (const shobj &, CORE_ADDR);
/* Return whether the data starting at VADDR, size SIZE, must be kept /* Return whether the data starting at VADDR, size SIZE, must be kept
in a core file for shared libraries loaded before "gcore" is used in a core file for shared libraries loaded before "gcore" is used

View file

@ -36,7 +36,7 @@ struct lm_info
using lm_info_up = std::unique_ptr<lm_info>; using lm_info_up = std::unique_ptr<lm_info>;
struct so_list : intrusive_list_node<so_list> struct shobj : intrusive_list_node<shobj>
{ {
/* Free symbol-file related contents of SO and reset for possible reloading /* Free symbol-file related contents of SO and reset for possible reloading
of SO. If we have opened a BFD for SO, close it. If we have placed SO's of SO. If we have opened a BFD for SO, close it. If we have placed SO's
@ -97,12 +97,12 @@ struct target_so_ops
{ {
/* Adjust the section binding addresses by the base address at /* Adjust the section binding addresses by the base address at
which the object was actually mapped. */ which the object was actually mapped. */
void (*relocate_section_addresses) (so_list &so, target_section *); void (*relocate_section_addresses) (shobj &so, target_section *);
/* Reset private data structures associated with SO. /* Reset private data structures associated with SO.
This is called when SO is about to be reloaded. This is called when SO is about to be reloaded.
It is also called when SO is about to be freed. */ It is also called when SO is about to be freed. */
void (*clear_so) (const so_list &so); void (*clear_so) (const shobj &so);
/* Free private data structures associated to PSPACE. This method /* Free private data structures associated to PSPACE. This method
should not free resources associated to individual so_list entries, should not free resources associated to individual so_list entries,
@ -117,9 +117,9 @@ struct target_so_ops
Note that we only gather information directly available from the Note that we only gather information directly available from the
inferior --- we don't examine any of the shared library files inferior --- we don't examine any of the shared library files
themselves. The declaration of `struct so_list' says which fields themselves. The declaration of `struct shobj' says which fields
we provide values for. */ we provide values for. */
intrusive_list<so_list> (*current_sos) (); intrusive_list<shobj> (*current_sos) ();
/* Find, open, and read the symbols for the main executable. If /* Find, open, and read the symbols for the main executable. If
FROM_TTY is non-zero, allow messages to be printed. */ FROM_TTY is non-zero, allow messages to be printed. */
@ -145,7 +145,7 @@ struct target_so_ops
if they represent the same library. if they represent the same library.
Falls back to using strcmp on so_original_name field when set Falls back to using strcmp on so_original_name field when set
to NULL. */ to NULL. */
int (*same) (const so_list &gdb, const so_list &inferior); int (*same) (const shobj &gdb, const shobj &inferior);
/* Return whether a region of memory must be kept in a core file /* Return whether a region of memory must be kept in a core file
for shared libraries loaded before "gcore" is used to be for shared libraries loaded before "gcore" is used to be
@ -170,7 +170,7 @@ struct target_so_ops
}; };
/* A unique pointer to a so_list. */ /* A unique pointer to a so_list. */
using so_list_up = std::unique_ptr<so_list>; using shobj_up = std::unique_ptr<shobj>;
/* Find main executable binary file. */ /* Find main executable binary file. */
extern gdb::unique_xmalloc_ptr<char> exec_file_find (const char *in_pathname, extern gdb::unique_xmalloc_ptr<char> exec_file_find (const char *in_pathname,