X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gdb%2Fsymfile.h;h=8e5909bd8bcd0918e787154dfeb02bafa190933b;hb=c256e171654791e456088ccb4c83d183650d8940;hp=10a2f4f90a3d5185072ce53104ea68450eda32ba;hpb=d521ce577a42680b885f6d9082c781fa303a25ac;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/symfile.h b/gdb/symfile.h index 10a2f4f90a..8e5909bd8b 100644 --- a/gdb/symfile.h +++ b/gdb/symfile.h @@ -201,8 +201,8 @@ struct quick_symbol_functions /* This is called by objfile_relocate to relocate any indices loaded for OBJFILE. */ void (*relocate) (struct objfile *objfile, - struct section_offsets *new_offsets, - struct section_offsets *delta); + const struct section_offsets *new_offsets, + const struct section_offsets *delta); /* Find all the symbols in OBJFILE named FUNC_NAME, and ensure that the corresponding symbol tables are loaded. */ @@ -220,11 +220,6 @@ struct quick_symbol_functions void (*expand_symtabs_with_fullname) (struct objfile *objfile, const char *fullname); - /* Return the file name of the file holding the global symbol in OBJFILE - named NAME. If no such symbol exists in OBJFILE, return NULL. - Only file extension of returned filename is recognized. */ - const char *(*find_symbol_file) (struct objfile *objfile, const char *name); - /* Find global or static symbols in all tables that are in NAMESPACE and for which MATCH (symbol name, NAME) == 0, passing each to CALLBACK, reading in partial symbol tables as needed. Look @@ -242,8 +237,9 @@ struct quick_symbol_functions CALLBACK returns 0 to indicate that the scan should continue, or non-zero to indicate that the scan should be terminated. */ - void (*map_matching_symbols) (const char *name, domain_enum namespace, - struct objfile *, int global, + void (*map_matching_symbols) (struct objfile *, + const char *name, domain_enum namespace, + int global, int (*callback) (struct block *, struct symbol *, void *), void *data, @@ -315,6 +311,14 @@ struct sym_probe_fns implement this method as well. */ unsigned (*sym_get_probe_argument_count) (struct probe *probe); + /* Return 1 if the probe interface can evaluate the arguments of probe + PROBE, zero otherwise. This function can be probe-specific, informing + whether only the arguments of PROBE can be evaluated, of generic, + informing whether the probe interface is able to evaluate any kind of + argument. If you provide an implementation of sym_get_probes, you must + implement this method as well. */ + int (*can_evaluate_probe_arguments) (struct probe *probe); + /* Evaluate the Nth argument available to PROBE. PROBE will have come from a call to this objfile's sym_get_probes method. N will be between 0 and the number of arguments available to this probe. @@ -337,8 +341,8 @@ struct sym_probe_fns /* Relocate the probe section of OBJFILE. */ void (*sym_relocate_probe) (struct objfile *objfile, - struct section_offsets *new_offsets, - struct section_offsets *delta); + const struct section_offsets *new_offsets, + const struct section_offsets *delta); }; /* Structure to keep track of symbol reading functions for various @@ -346,12 +350,6 @@ struct sym_probe_fns struct sym_fns { - - /* BFD flavour that we handle, or (as a special kludge, see - xcoffread.c, (enum bfd_flavour)-1 for xcoff). */ - - enum bfd_flavour sym_flavour; - /* Initializes anything that is global to the entire symbol table. It is called during symbol_file_add, when we begin debugging an entirely new program. */ @@ -391,7 +389,7 @@ struct sym_fns probably be changed to a string, where NULL means the default, and others are parsed in a file dependent way. */ - void (*sym_offsets) (struct objfile *, struct section_addr_info *); + void (*sym_offsets) (struct objfile *, const struct section_addr_info *); /* This function produces a format-independent description of the segments of ABFD. Each segment is a unit of the file @@ -403,7 +401,7 @@ struct sym_fns the line table cannot be read while processing the debugging information. */ - void (*sym_read_linetable) (void); + void (*sym_read_linetable) (struct objfile *); /* Relocate the contents of a debug section SECTP. The contents are stored in BUF if it is non-NULL, or returned in a @@ -425,7 +423,7 @@ extern struct section_addr_info * extern void relative_addr_info_to_section_offsets (struct section_offsets *section_offsets, int num_sections, - struct section_addr_info *addrs); + const struct section_addr_info *addrs); extern void addr_info_make_relative (struct section_addr_info *addrs, bfd *abfd); @@ -434,7 +432,7 @@ extern void addr_info_make_relative (struct section_addr_info *addrs, do anything special. */ extern void default_symfile_offsets (struct objfile *objfile, - struct section_addr_info *); + const struct section_addr_info *); /* The default version of sym_fns.sym_segments for readers that don't do anything special. */ @@ -450,10 +448,10 @@ extern bfd_byte *default_symfile_relocate (struct objfile *objfile, extern struct symtab *allocate_symtab (const char *, struct objfile *) ATTRIBUTE_NONNULL (1); -extern void add_symtab_fns (const struct sym_fns *); +extern void add_symtab_fns (enum bfd_flavour flavour, const struct sym_fns *); /* This enum encodes bit-flags passed as ADD_FLAGS parameter to - syms_from_objfile, symbol_file_add, etc. */ + symbol_file_add, etc. */ enum symfile_add_flags { @@ -472,20 +470,17 @@ enum symfile_add_flags SYMFILE_NO_READ = 1 << 4 }; -extern void syms_from_objfile (struct objfile *, - struct section_addr_info *, - struct section_offsets *, int, int); - extern void new_symfile_objfile (struct objfile *, int); -extern struct objfile *symbol_file_add (char *, int, +extern struct objfile *symbol_file_add (const char *, int, struct section_addr_info *, int); -extern struct objfile *symbol_file_add_from_bfd (bfd *, int, +extern struct objfile *symbol_file_add_from_bfd (bfd *, const char *, int, struct section_addr_info *, int, struct objfile *parent); -extern void symbol_file_add_separate (bfd *, int, struct objfile *); +extern void symbol_file_add_separate (bfd *, const char *, int, + struct objfile *); extern char *find_separate_debug_file_by_debuglink (struct objfile *); @@ -529,7 +524,7 @@ extern void set_initial_language (void); extern void find_lowest_section (bfd *, asection *, void *); -extern bfd *symfile_bfd_open (char *); +extern bfd *symfile_bfd_open (const char *); extern bfd *gdb_bfd_open_maybe_remote (const char *); @@ -573,7 +568,7 @@ extern CORE_ADDR overlay_unmapped_address (CORE_ADDR, struct obj_section *); extern CORE_ADDR symbol_overlayed_address (CORE_ADDR, struct obj_section *); /* Load symbols from a file. */ -extern void symbol_file_add_main (char *args, int from_tty); +extern void symbol_file_add_main (const char *args, int from_tty); /* Clear GDB symbol tables. */ extern void symbol_file_clear (int from_tty); @@ -585,7 +580,7 @@ extern bfd_byte *symfile_relocate_debug_section (struct objfile *, asection *, bfd_byte *); extern int symfile_map_offsets_to_segments (bfd *, - struct symfile_segment_data *, + const struct symfile_segment_data *, struct section_offsets *, int, const CORE_ADDR *); struct symfile_segment_data *get_symfile_segment_data (bfd *abfd);