aboutsummaryrefslogtreecommitdiff
path: root/gdb/progspace.h
diff options
context:
space:
mode:
authorTom Tromey <tom@tromey.com>2020-05-08 14:21:22 -0600
committerTom Tromey <tromey@adacore.com>2020-05-08 14:21:22 -0600
commita1fd1ac9def557cbb7570cf90178a00cb26e7fef (patch)
tree2ba2b212b672aef86649fdb3ae6e3668cc49ada2 /gdb/progspace.h
parent38eae084598a3531bef4b7987a8fe646ae92a988 (diff)
downloadgdb-a1fd1ac9def557cbb7570cf90178a00cb26e7fef.zip
gdb-a1fd1ac9def557cbb7570cf90178a00cb26e7fef.tar.gz
gdb-a1fd1ac9def557cbb7570cf90178a00cb26e7fef.tar.bz2
Remove ALL_SO_LIBS and so_list_head
This patch started as an attempt to replace ALL_SO_LIBS with an ordinary C++ iterator. However, then I tripped over the so_list_head define again, and decided to remove it as well. gdb/ChangeLog 2020-05-08 Tom Tromey <tom@tromey.com> * mi/mi-cmd-file.c (mi_cmd_file_list_shared_libraries): Update. * solib-svr4.c (svr4_fetch_objfile_link_map): Update. (enable_break): Update. * solib-frv.c (frv_fdpic_find_global_pointer): Update. (frv_fdpic_find_canonical_descriptor): Update. (frv_fetch_objfile_link_map): Update. * progspace.c (program_space::free_all_objfiles): Update. (program_space::solibs): New method. * progspace.h (struct program_space) <solibs>: New method. * solist.h (master_so_list): Don't declare. (ALL_SO_LIBS): Remove. * solib.h (so_list_head): Remove. (update_solib_list): Update comment. * solib.c (master_so_list): Remove. (solib_used, update_solib_list, solib_add) (info_sharedlibrary_command, clear_solib) (reload_shared_libraries_1, remove_user_added_objfile): Update.
Diffstat (limited to 'gdb/progspace.h')
-rw-r--r--gdb/progspace.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/gdb/progspace.h b/gdb/progspace.h
index 2b88784..0e32224 100644
--- a/gdb/progspace.h
+++ b/gdb/progspace.h
@@ -37,6 +37,7 @@ struct exec;
struct address_space;
struct program_space_data;
struct address_space_data;
+struct so_list;
typedef std::list<std::shared_ptr<objfile>> objfile_list;
@@ -264,6 +265,12 @@ struct program_space
/* Free all the objfiles associated with this program space. */
void free_all_objfiles ();
+ /* Return a range adapter for iterating over all the solibs in this
+ program space. Use it like:
+
+ for (so_list *so : pspace->solibs ()) { ... } */
+ next_adapter<struct so_list> solibs () const;
+
/* Pointer to next in linked list. */
struct program_space *next = NULL;