aboutsummaryrefslogtreecommitdiff
path: root/gdb/objfiles.h
diff options
context:
space:
mode:
authorJoel Brobecker <brobecker@gnat.com>2012-06-05 13:50:50 +0000
committerJoel Brobecker <brobecker@gnat.com>2012-06-05 13:50:50 +0000
commit19630284f570790ebf6d50bfb43caa1f125ee88a (patch)
tree1ae3d6f4c3a0fb1e045313bcead7b3f6c562a3fb /gdb/objfiles.h
parent67ff19f7de8c61147c5401c7f56ad30fda0f5491 (diff)
downloadgdb-19630284f570790ebf6d50bfb43caa1f125ee88a.zip
gdb-19630284f570790ebf6d50bfb43caa1f125ee88a.tar.gz
gdb-19630284f570790ebf6d50bfb43caa1f125ee88a.tar.bz2
New "iterate_over_objfiles_in_search_order" gdbarch method.
This patch introduces the "iterate_over_objfiles_in_search_order" gdbarch method, as well as its default implementation, and converts the areas where it will matter to using this gdbarch method. The default method implementation is the only one installed, and the changes should have no functional impact in terms of behavior. This only paves the way for the architectures that will need their own version. gdb/ChangeLog: * gdbarch.sh: Add generation of "iterate_over_objfiles_in_search_order_cb_ftype" typedef in gdbarch.h. Add include of "objfiles.h" in gdbarch.c. (iterate_over_objfiles_in_search_order): New gdbarch method. * gdbarch.h, gdbarch.c: Regenerate. * objfiles.h (default_iterate_over_objfiles_in_search_order): Add declaration. * objfiles.c (default_iterate_over_objfiles_in_search_order): New function. * symtab.c (lookup_symbol_aux_objfile): New function, extracted out of lookup_symbol_aux_symtabs. (lookup_symbol_aux_symtabs): Replace extracted-out code by call to lookup_symbol_aux_objfile. (struct global_sym_lookup_data): New type. (lookup_symbol_global_iterator_cb): New function. (lookup_symbol_global): Search for symbol using gdbarch_iterate_over_objfiles_in_search_order and lookup_symbol_global_iterator_cb. * findvar.c (struct minsym_lookup_data): New type. (minsym_lookup_iterator_cb): New function. (default_read_var_value) [case LOC_UNRESOLVED]: Resolve the symbol's address via gdbarch_iterate_over_objfiles_in_search_order and minsym_lookup_iterator_cb.
Diffstat (limited to 'gdb/objfiles.h')
-rw-r--r--gdb/objfiles.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/gdb/objfiles.h b/gdb/objfiles.h
index 98cc39e..01c3aea 100644
--- a/gdb/objfiles.h
+++ b/gdb/objfiles.h
@@ -525,6 +525,11 @@ extern void *objfile_data (struct objfile *objfile,
extern struct bfd *gdb_bfd_ref (struct bfd *abfd);
extern void gdb_bfd_unref (struct bfd *abfd);
extern int gdb_bfd_close_or_warn (struct bfd *abfd);
+
+extern void default_iterate_over_objfiles_in_search_order
+ (struct gdbarch *gdbarch,
+ iterate_over_objfiles_in_search_order_cb_ftype *cb,
+ void *cb_data, struct objfile *current_objfile);
/* Traverse all object files in the current program space.