aboutsummaryrefslogtreecommitdiff
path: root/gdb/objfiles.h
diff options
context:
space:
mode:
authorGary Benson <gary@redhat.com>2013-06-04 12:53:34 +0000
committerGary Benson <gary@redhat.com>2013-06-04 12:53:34 +0000
commit607ece04f463f66121834ffef3484d942c7c91da (patch)
treea668c538c435c6db0db4a7142d699bad18c622a6 /gdb/objfiles.h
parent9ee6a5acd5d83655e5af4a79c83f31dfce0a2a8e (diff)
downloadgdb-607ece04f463f66121834ffef3484d942c7c91da.zip
gdb-607ece04f463f66121834ffef3484d942c7c91da.tar.gz
gdb-607ece04f463f66121834ffef3484d942c7c91da.tar.bz2
2013-06-04 Gary Benson <gbenson@redhat.com>
* objfiles.h (inhibit_section_map_updates): New function declaration. (resume_section_map_updates): Likewise. (resume_section_map_updates_cleanup): Likewise. * objfiles.c (objfile_pspace_info): Removed field "objfiles_changed_p". New fields "new_objfiles_available", "section_map_dirty" and "inhibit_updates". (allocate_objfile): Set new_objfiles_available. (free_objfile): Set section_map_dirty. (objfile_relocate1): Likewise. (in_plt_section): Likewise. (find_pc_section): Update the conditions under which the section map will be updated. (inhibit_section_map_updates): New function. (resume_section_map_updates): Likewise. (resume_section_map_updates_cleanup): Likewise.
Diffstat (limited to 'gdb/objfiles.h')
-rw-r--r--gdb/objfiles.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/gdb/objfiles.h b/gdb/objfiles.h
index 93149e2..adb1ef8 100644
--- a/gdb/objfiles.h
+++ b/gdb/objfiles.h
@@ -501,6 +501,22 @@ extern int in_plt_section (CORE_ADDR, char *);
modules. */
DECLARE_REGISTRY(objfile);
+/* In normal use, the section map will be rebuilt by find_pc_section
+ if objfiles have been added, removed or relocated since it was last
+ called. Calling inhibit_section_map_updates will inhibit this
+ behavior until resume_section_map_updates is called. If you call
+ inhibit_section_map_updates you must ensure that every call to
+ find_pc_section in the inhibited region relates to a section that
+ is already in the section map and has not since been removed or
+ relocated. */
+extern void inhibit_section_map_updates (struct program_space *pspace);
+
+/* Resume automatically rebuilding the section map as required. */
+extern void resume_section_map_updates (struct program_space *pspace);
+
+/* Version of the above suitable for use as a cleanup. */
+extern void resume_section_map_updates_cleanup (void *arg);
+
extern void default_iterate_over_objfiles_in_search_order
(struct gdbarch *gdbarch,
iterate_over_objfiles_in_search_order_cb_ftype *cb,