/* Definitions for reading symbol files into GDB.
Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
- 2000, 2001, 2002, 2003, 2004, 2007, 2008, 2009, 2010
+ 2000, 2001, 2002, 2003, 2004, 2007, 2008, 2009, 2010, 2011
Free Software Foundation, Inc.
This file is part of GDB.
struct obstack;
struct block;
+/* Comparison function for symbol look ups. */
+
+typedef int (symbol_compare_ftype) (const char *string1,
+ const char *string2);
+
/* Partial symbols are stored in the psymbol_cache and pointers to
them are kept in a dynamically grown array that is obtained from
malloc and grown as necessary via realloc. Each objfile typically
/* The number of sections for which address information is
available. */
size_t num_sections;
- /* Sections whose names are file format dependent. */
+ /* Sections whose names are file format dependent. */
struct other_sections
{
CORE_ADDR addr;
void (*expand_all_symtabs) (struct objfile *objfile);
/* Read all symbol tables associated with OBJFILE which have the
- file name FILENAME. */
+ file name FILENAME.
+ This is for the purposes of examining code only, e.g., expand_line_sal.
+ The routine may ignore debug info that is known to not be useful with
+ code, e.g., DW_TAG_type_unit for dwarf debug info. */
void (*expand_symtabs_with_filename) (struct objfile *objfile,
const char *filename);
/* 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 symbol tables as needed. Look
- through global symbols if GLOBAL and otherwise static symbols.
+ through global symbols if GLOBAL and otherwise static symbols.
Passes NAME, NAMESPACE, and DATA to CALLBACK with each symbol
found. After each block is processed, passes NULL to CALLBACK.
MATCH must be weaker than strcmp_iw in the sense that
strcmp(x,y) == 0 --> ORDERED_COMPARE(x,y) == 0
and
strcmp(x,y) <= 0 --> ORDERED_COMPARE(x,y) <= 0
- (allowing strcmp(x,y) < 0 while ORDERED_COMPARE(x, y) == 0).
+ (allowing strcmp(x,y) < 0 while ORDERED_COMPARE(x, y) == 0).
CALLBACK returns 0 to indicate that the scan should continue, or
non-zero to indicate that the scan should be terminated. */
int (*callback) (struct block *,
struct symbol *, void *),
void *data,
- int (*match) (const char *, const char *),
- int (*ordered_compare) (const char *,
- const char *));
+ symbol_compare_ftype *match,
+ symbol_compare_ftype *ordered_compare);
/* Expand all symbol tables in OBJFILE matching some criteria.
void (*fun) (const char *, void *),
void *data);
- /* Call a callback for every file defined in OBJFILE. FUN is the
- callback. It is passed the file's name, the file's full name,
- and the DATA passed to this function. */
+ /* Call a callback for every file defined in OBJFILE whose symtab is
+ not already read in. FUN is the callback. It is passed the file's name,
+ the file's full name, and the DATA passed to this function. */
void (*map_symbol_filenames) (struct objfile *objfile,
void (*fun) (const char *, const char *,
void *),
};
extern struct section_addr_info *
- build_section_addr_info_from_objfile (const struct objfile *objfile);
+ build_section_addr_info_from_objfile (const struct objfile *objfile);
extern void relative_addr_info_to_section_offsets
(struct section_offsets *section_offsets, int num_sections,
extern char *obsavestring (const char *, int, struct obstack *);
-/* Concatenate NULL terminated variable argument list of `const char *' strings;
- return the new string. Space is found in the OBSTACKP. Argument list must
- be terminated by a sentinel expression `(char *) NULL'. */
+/* Concatenate NULL terminated variable argument list of `const char
+ *' strings; return the new string. Space is found in the OBSTACKP.
+ Argument list must be terminated by a sentinel expression `(char *)
+ NULL'. */
extern char *obconcat (struct obstack *obstackp, ...) ATTRIBUTE_SENTINEL;