Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(494)

Side by Side Diff: gdb/progspace.h

Issue 11969036: Merge GDB 7.5.1 (Closed) Base URL: http://git.chromium.org/native_client/nacl-gdb.git@master
Patch Set: Created 7 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « gdb/procfs.c ('k') | gdb/progspace.c » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* Program and address space management, for GDB, the GNU debugger. 1 /* Program and address space management, for GDB, the GNU debugger.
2 2
3 Copyright (C) 2009-2012 Free Software Foundation, Inc. 3 Copyright (C) 2009-2012 Free Software Foundation, Inc.
4 4
5 This file is part of GDB. 5 This file is part of GDB.
6 6
7 This program is free software; you can redistribute it and/or modify 7 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by 8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 3 of the License, or 9 the Free Software Foundation; either version 3 of the License, or
10 (at your option) any later version. 10 (at your option) any later version.
11 11
12 This program is distributed in the hope that it will be useful, 12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of 13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details. 15 GNU General Public License for more details.
16 16
17 You should have received a copy of the GNU General Public License 17 You should have received a copy of the GNU General Public License
18 along with this program. If not, see <http://www.gnu.org/licenses/>. */ 18 along with this program. If not, see <http://www.gnu.org/licenses/>. */
19 19
20 20
21 #ifndef PROGSPACE_H 21 #ifndef PROGSPACE_H
22 #define PROGSPACE_H 22 #define PROGSPACE_H
23 23
24 #include "target.h" 24 #include "target.h"
25 #include "vec.h" 25 #include "vec.h"
26 #include "gdb_vecs.h"
26 27
27 struct target_ops; 28 struct target_ops;
28 struct bfd; 29 struct bfd;
29 struct objfile; 30 struct objfile;
30 struct inferior; 31 struct inferior;
31 struct exec; 32 struct exec;
32 struct address_space; 33 struct address_space;
33 struct program_space_data; 34 struct program_space_data;
34 35
36 typedef struct so_list *so_list_ptr;
37 DEF_VEC_P (so_list_ptr);
38
35 /* A program space represents a symbolic view of an address space. 39 /* A program space represents a symbolic view of an address space.
36 Roughly speaking, it holds all the data associated with a 40 Roughly speaking, it holds all the data associated with a
37 non-running-yet program (main executable, main symbols), and when 41 non-running-yet program (main executable, main symbols), and when
38 an inferior is running and is bound to it, includes the list of its 42 an inferior is running and is bound to it, includes the list of its
39 mapped in shared libraries. 43 mapped in shared libraries.
40 44
41 In the traditional debugging scenario, there's a 1-1 correspondence 45 In the traditional debugging scenario, there's a 1-1 correspondence
42 among program spaces, inferiors and address spaces, like so: 46 among program spaces, inferiors and address spaces, like so:
43 47
44 pspace1 (prog1) <--> inf1(pid1) <--> aspace1 48 pspace1 (prog1) <--> inf1(pid1) <--> aspace1
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after
181 this program space. Managed by both exec_ops and solib.c. */ 185 this program space. Managed by both exec_ops and solib.c. */
182 struct target_section_table target_sections; 186 struct target_section_table target_sections;
183 187
184 /* List of shared objects mapped into this space. Managed by 188 /* List of shared objects mapped into this space. Managed by
185 solib.c. */ 189 solib.c. */
186 struct so_list *so_list; 190 struct so_list *so_list;
187 191
188 /* Number of calls to solib_add. */ 192 /* Number of calls to solib_add. */
189 unsigned solib_add_generation; 193 unsigned solib_add_generation;
190 194
195 /* When an solib is added, it is also added to this vector. This
196 is so we can properly report solib changes to the user. */
197 VEC (so_list_ptr) *added_solibs;
198
199 /* When an solib is removed, its name is added to this vector.
200 This is so we can properly report solib changes to the user. */
201 VEC (char_ptr) *deleted_solibs;
202
191 /* Per pspace data-pointers required by other GDB modules. */ 203 /* Per pspace data-pointers required by other GDB modules. */
192 void **data; 204 void **data;
193 unsigned num_data; 205 unsigned num_data;
194 }; 206 };
195 207
196 /* The object file that the main symbol table was loaded from (e.g. the 208 /* The object file that the main symbol table was loaded from (e.g. the
197 argument to the "symbol-file" or "file" command). */ 209 argument to the "symbol-file" or "file" command). */
198 210
199 #define symfile_objfile current_program_space->symfile_object_file 211 #define symfile_objfile current_program_space->symfile_object_file
200 212
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
271 inferiors will share an address space or not. Call this after 283 inferiors will share an address space or not. Call this after
272 having connected to the target interface and having fetched the 284 having connected to the target interface and having fetched the
273 target description, to fixup the program/address spaces 285 target description, to fixup the program/address spaces
274 mappings. */ 286 mappings. */
275 extern void update_address_spaces (void); 287 extern void update_address_spaces (void);
276 288
277 /* Prune away automatically added program spaces that aren't required 289 /* Prune away automatically added program spaces that aren't required
278 anymore. */ 290 anymore. */
279 extern void prune_program_spaces (void); 291 extern void prune_program_spaces (void);
280 292
293 /* Reset saved solib data at the start of an solib event. This lets
294 us properly collect the data when calling solib_add, so it can then
295 later be printed. */
296 extern void clear_program_space_solib_cache (struct program_space *);
297
281 /* Keep a registry of per-pspace data-pointers required by other GDB 298 /* Keep a registry of per-pspace data-pointers required by other GDB
282 modules. */ 299 modules. */
283 300
284 extern const struct program_space_data *register_program_space_data (void); 301 extern const struct program_space_data *register_program_space_data (void);
285 extern const struct program_space_data *register_program_space_data_with_cleanup 302 extern const struct program_space_data *register_program_space_data_with_cleanup
286 (void (*cleanup) (struct program_space *, void *)); 303 (void (*cleanup) (struct program_space *, void *));
287 extern void clear_program_space_data (struct program_space *pspace); 304 extern void clear_program_space_data (struct program_space *pspace);
288 extern void set_program_space_data (struct program_space *pspace, 305 extern void set_program_space_data (struct program_space *pspace,
289 const struct program_space_data *data, 306 const struct program_space_data *data,
290 void *value); 307 void *value);
291 extern void *program_space_data (struct program_space *pspace, 308 extern void *program_space_data (struct program_space *pspace,
292 const struct program_space_data *data); 309 const struct program_space_data *data);
293 310
294 #endif 311 #endif
OLDNEW
« no previous file with comments | « gdb/procfs.c ('k') | gdb/progspace.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698