[gdb] Fix assert in remote_async_get_pending_events_handler
[deliverable/binutils-gdb.git] / gdb / progspace.h
index f4e1107c6ece26d21456e75e1fc124f0e9981f23..790684743d871a95396afa877b9860cc3c1be643 100644 (file)
@@ -1,6 +1,6 @@
 /* Program and address space management, for GDB, the GNU debugger.
 
-   Copyright (C) 2009-2020 Free Software Foundation, Inc.
+   Copyright (C) 2009-2021 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -300,6 +300,27 @@ struct program_space
   /* Remove all target sections owned by OWNER.  */
   void remove_target_sections (void *owner);
 
+  /* Add the sections array defined by SECTIONS to the
+     current set of target sections.  */
+  void add_target_sections (void *owner,
+                           const target_section_table &sections);
+
+  /* Add the sections of OBJFILE to the current set of target
+     sections.  They are given OBJFILE as the "owner".  */
+  void add_target_sections (struct objfile *objfile);
+
+  /* Clear all target sections from M_TARGET_SECTIONS table.  */
+  void clear_target_sections ()
+  {
+    m_target_sections.clear ();
+  }
+
+  /* Return a reference to the M_TARGET_SECTIONS table.  */
+  target_section_table &target_sections ()
+  {
+    return m_target_sections;
+  }
+
   /* Unique ID number.  */
   int num = 0;
 
@@ -350,10 +371,6 @@ struct program_space
   /* All known objfiles are kept in a linked list.  */
   std::list<std::shared_ptr<objfile>> objfiles_list;
 
-  /* The set of target sections matching the sections mapped into
-     this program space.  Managed by both exec_ops and solib.c.  */
-  target_section_table target_sections;
-
   /* List of shared objects mapped into this space.  Managed by
      solib.c.  */
   struct so_list *so_list = NULL;
@@ -371,6 +388,11 @@ struct program_space
 
   /* Per pspace data-pointers required by other GDB modules.  */
   REGISTRY_FIELDS {};
+
+private:
+  /* The set of target sections matching the sections mapped into
+     this program space.  Managed by both exec_ops and solib.c.  */
+  target_section_table m_target_sections;
 };
 
 /* An address space.  It is used for comparing if
This page took 0.025277 seconds and 4 git commands to generate.