X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gdb%2Fprogspace.h;h=099b4dc0b3a4c4df4d5b70fd23159aa8ede9eb45;hb=refs%2Fheads%2Fconcurrent-displaced-stepping-2020-04-01;hp=2b887847e17ac4236c4404c922c858825b5e5277;hpb=381ce63f2f010ef5c246be720ef177cf46a19179;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/progspace.h b/gdb/progspace.h index 2b887847e1..099b4dc0b3 100644 --- a/gdb/progspace.h +++ b/gdb/progspace.h @@ -28,6 +28,7 @@ #include "gdbsupport/next-iterator.h" #include "gdbsupport/safe-iterator.h" #include +#include struct target_ops; struct bfd; @@ -37,6 +38,7 @@ struct exec; struct address_space; struct program_space_data; struct address_space_data; +struct so_list; typedef std::list> objfile_list; @@ -264,9 +266,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 solibs () const; - /* Pointer to next in linked list. */ - struct program_space *next = NULL; /* Unique ID number. */ int num = 0; @@ -362,17 +367,11 @@ struct address_space #define current_target_sections (¤t_program_space->target_sections) /* The list of all program spaces. There's always at least one. */ -extern struct program_space *program_spaces; +extern std::vectorprogram_spaces; /* The current program space. This is always non-null. */ extern struct program_space *current_program_space; -#define ALL_PSPACES(pspace) \ - for ((pspace) = program_spaces; (pspace) != NULL; (pspace) = (pspace)->next) - -/* Returns the number of program spaces listed. */ -extern int number_of_program_spaces (void); - /* Returns true iff there's no inferior bound to PSPACE. */ extern int program_space_empty_p (struct program_space *pspace);