gas/
[deliverable/binutils-gdb.git] / gdb / progspace.h
index 2a0d1d294c5d8947eb37b4a213486564677299be..3db3938aace7b4dd9eafaaec05453550b749a2f4 100644 (file)
@@ -1,6 +1,6 @@
 /* Program and address space management, for GDB, the GNU debugger.
 
-   Copyright (C) 2009 Free Software Foundation, Inc.
+   Copyright (C) 2009-2012 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -23,6 +23,7 @@
 
 #include "target.h"
 #include "vec.h"
+#include "gdb_vecs.h"
 
 struct target_ops;
 struct bfd;
@@ -32,6 +33,9 @@ struct exec;
 struct address_space;
 struct program_space_data;
 
+typedef struct so_list *so_list_ptr;
+DEF_VEC_P (so_list_ptr);
+
 /* A program space represents a symbolic view of an address space.
    Roughly speaking, it holds all the data associated with a
    non-running-yet program (main executable, main symbols), and when
@@ -165,12 +169,16 @@ struct program_space
        to set breakpoints point at the wrong addresses.  */
     int executing_startup;
 
+    /* True if no breakpoints should be inserted in this program
+       space.  */
+    int breakpoints_not_allowed;
+
     /* The object file that the main symbol table was loaded from
        (e.g. the argument to the "symbol-file" or "file" command).  */
     struct objfile *symfile_object_file;
 
     /* All known objfiles are kept in a linked list.  This points to
-       the head of this list. */
+       the head of this list.  */
     struct objfile *objfiles;
 
     /* The set of target sections matching the sections mapped into
@@ -181,6 +189,17 @@ struct program_space
        solib.c.  */
     struct so_list *so_list;
 
+    /* Number of calls to solib_add.  */
+    unsigned solib_add_generation;
+
+    /* When an solib is added, it is also added to this vector.  This
+       is so we can properly report solib changes to the user.  */
+    VEC (so_list_ptr) *added_solibs;
+
+    /* When an solib is removed, its name is added to this vector.
+       This is so we can properly report solib changes to the user.  */
+    VEC (char_ptr) *deleted_solibs;
+
     /* Per pspace data-pointers required by other GDB modules.  */
     void **data;
     unsigned num_data;
@@ -192,7 +211,7 @@ struct program_space
 #define symfile_objfile current_program_space->symfile_object_file
 
 /* All known objfiles are kept in a linked list.  This points to the
-   root of this list. */
+   root of this list.  */
 #define object_files current_program_space->objfiles
 
 /* The set of target sections matching the sections mapped into the
@@ -254,6 +273,9 @@ extern struct address_space *new_address_space (void);
    share an address space.  */
 extern struct address_space *maybe_new_address_space (void);
 
+/* Returns the integer address space id of ASPACE.  */
+extern int address_space_num (struct address_space *aspace);
+
 /* Update all program spaces matching to address spaces.  The user may
    have created several program spaces, and loaded executables into
    them before connecting to the target interface that will create the
@@ -268,6 +290,11 @@ extern void update_address_spaces (void);
    anymore.  */
 extern void prune_program_spaces (void);
 
+/* Reset saved solib data at the start of an solib event.  This lets
+   us properly collect the data when calling solib_add, so it can then
+   later be printed.  */
+extern void clear_program_space_solib_cache (struct program_space *);
+
 /* Keep a registry of per-pspace data-pointers required by other GDB
    modules.  */
 
@@ -276,7 +303,8 @@ extern const struct program_space_data *register_program_space_data_with_cleanup
   (void (*cleanup) (struct program_space *, void *));
 extern void clear_program_space_data (struct program_space *pspace);
 extern void set_program_space_data (struct program_space *pspace,
-                             const struct program_space_data *data, void *value);
+                                   const struct program_space_data *data,
+                                   void *value);
 extern void *program_space_data (struct program_space *pspace,
                           const struct program_space_data *data);
 
This page took 0.025028 seconds and 4 git commands to generate.