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

Unified Diff: gdb/symtab.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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « gdb/symmisc.c ('k') | gdb/symtab.c » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: gdb/symtab.h
diff --git a/gdb/symtab.h b/gdb/symtab.h
index 9a26656acd29002b0a7563e33fac681621026603..76120a37a93ad14a9dc7d90949e73f486b4451b3 100644
--- a/gdb/symtab.h
+++ b/gdb/symtab.h
@@ -22,6 +22,7 @@
#define SYMTAB_H 1
#include "vec.h"
+#include "gdb_vecs.h"
/* Opaque declarations. */
struct ui_file;
@@ -35,6 +36,7 @@ struct axs_value;
struct agent_expr;
struct program_space;
struct language_defn;
+struct probe;
/* Some of the structures in this file are space critical.
The space-critical structures are:
@@ -81,7 +83,7 @@ struct language_defn;
struct cplus_specific
{
- char *demangled_name;
+ const char *demangled_name;
};
/* Define a structure for the information that is common to all symbol types,
@@ -99,7 +101,7 @@ struct general_symbol_info
the mangled name and demangled name, this is the mangled
name. */
- char *name;
+ const char *name;
/* Value of the symbol. Which member of this union to use, and what
it means, depends on what kind of symbol this is and its
@@ -109,10 +111,7 @@ struct general_symbol_info
union
{
- /* The fact that this is a long not a LONGEST mainly limits the
- range of a LOC_CONST. Since LOC_CONST_BYTES exists, I'm not
- sure that is a big deal. */
- long ivalue;
+ LONGEST ivalue;
struct block *block;
@@ -135,7 +134,7 @@ struct general_symbol_info
currently used by Ada, Java, and Objective C. */
struct mangled_lang
{
- char *demangled_name;
+ const char *demangled_name;
}
mangled_lang;
@@ -166,7 +165,8 @@ struct general_symbol_info
extern void symbol_set_demangled_name (struct general_symbol_info *, char *,
struct objfile *);
-extern char *symbol_get_demangled_name (const struct general_symbol_info *);
+extern const char *symbol_get_demangled_name
+ (const struct general_symbol_info *);
extern CORE_ADDR symbol_overlayed_address (CORE_ADDR, struct obj_section *);
@@ -225,7 +225,8 @@ extern void symbol_set_names (struct general_symbol_info *symbol,
#define SYMBOL_NATURAL_NAME(symbol) \
(symbol_natural_name (&(symbol)->ginfo))
-extern char *symbol_natural_name (const struct general_symbol_info *symbol);
+extern const char *symbol_natural_name
+ (const struct general_symbol_info *symbol);
/* Return SYMBOL's name from the point of view of the linker. In
languages like C++ where symbols may be mangled for ease of
@@ -238,7 +239,8 @@ extern char *symbol_natural_name (const struct general_symbol_info *symbol);
that symbol. If no demangled name exists, return NULL. */
#define SYMBOL_DEMANGLED_NAME(symbol) \
(symbol_demangled_name (&(symbol)->ginfo))
-extern char *symbol_demangled_name (const struct general_symbol_info *symbol);
+extern const char *symbol_demangled_name
+ (const struct general_symbol_info *symbol);
/* Macro that returns a version of the name of a symbol that is
suitable for output. In C++ this is the "demangled" form of the
@@ -254,21 +256,6 @@ extern char *symbol_demangled_name (const struct general_symbol_info *symbol);
(demangle ? SYMBOL_NATURAL_NAME (symbol) : SYMBOL_LINKAGE_NAME (symbol))
extern int demangle;
-/* Macro that tests a symbol for a match against a specified name string.
- First test the unencoded name, then looks for and test a C++ encoded
- name if it exists. Note that whitespace is ignored while attempting to
- match a C++ encoded name, so that "foo::bar(int,long)" is the same as
- "foo :: bar (int, long)".
- Evaluates to zero if the match fails, or nonzero if it succeeds. */
-
-/* Macro that tests a symbol for a match against a specified name
- string. It tests against SYMBOL_NATURAL_NAME, and it ignores
- whitespace and trailing parentheses. (See strcmp_iw for details
- about its behavior.) */
-
-#define SYMBOL_MATCHES_NATURAL_NAME(symbol, name) \
- (strcmp_iw (SYMBOL_NATURAL_NAME (symbol), (name)) == 0)
-
/* Macro that returns the name to be used when sorting and searching symbols.
In C++, Chill, and Java, we search for the demangled form of a name,
and so sort symbols accordingly. In Ada, however, we search by mangled
@@ -276,10 +263,11 @@ extern int demangle;
returns the same value (same pointer) as SYMBOL_LINKAGE_NAME. */
#define SYMBOL_SEARCH_NAME(symbol) \
(symbol_search_name (&(symbol)->ginfo))
-extern char *symbol_search_name (const struct general_symbol_info *);
+extern const char *symbol_search_name (const struct general_symbol_info *);
-/* Analogous to SYMBOL_MATCHES_NATURAL_NAME, but uses the search
- name. */
+/* Return non-zero if NAME matches the "search" name of SYMBOL.
+ Whitespace and trailing parentheses are ignored.
+ See strcmp_iw for details about its behavior. */
#define SYMBOL_MATCHES_SEARCH_NAME(symbol, name) \
(strcmp_iw (SYMBOL_SEARCH_NAME (symbol), (name)) == 0)
@@ -346,12 +334,16 @@ struct minimal_symbol
unsigned long size;
/* Which source file is this symbol in? Only relevant for mst_file_*. */
- char *filename;
+ const char *filename;
/* Classification type for this minimal symbol. */
ENUM_BITFIELD(minimal_symbol_type) type : 8;
+ /* Non-zero if this symbol was created by gdb.
+ Such symbols do not appear in the output of "info var|fun". */
+ unsigned int created_by_gdb : 1;
+
/* Two flag bits provided for the use of the target. */
unsigned int target_flag_1 : 1;
unsigned int target_flag_2 : 1;
@@ -372,6 +364,8 @@ struct minimal_symbol
#define MSYMBOL_SIZE(msymbol) (msymbol)->size
#define MSYMBOL_TYPE(msymbol) (msymbol)->type
+#include "minsyms.h"
+
/* Represent one symbol name; a variable, constant, function or typedef. */
@@ -844,6 +838,23 @@ struct symtab
/* struct call_site entries for this compilation unit or NULL. */
htab_t call_site_htab;
+
+ /* If non-NULL, then this points to a NULL-terminated vector of
+ included symbol tables. When searching the static or global
+ block of this symbol table, the corresponding block of all
+ included symbol tables will also be searched. Note that this
+ list must be flattened -- the symbol reader is responsible for
+ ensuring that this vector contains the transitive closure of all
+ included symbol tables. */
+
+ struct symtab **includes;
+
+ /* If this is an included symbol table, this points to one includer
+ of the table. This user is considered the canonical symbol table
+ containing this one. An included symbol table may itself be
+ included by another. */
+
+ struct symtab *user;
};
#define BLOCKVECTOR(symtab) (symtab)->blockvector
@@ -964,14 +975,14 @@ extern struct symbol *find_pc_function (CORE_ADDR);
extern struct symbol *find_pc_sect_function (CORE_ADDR, struct obj_section *);
-extern int find_pc_partial_function_gnu_ifunc (CORE_ADDR pc, char **name,
+extern int find_pc_partial_function_gnu_ifunc (CORE_ADDR pc, const char **name,
CORE_ADDR *address,
CORE_ADDR *endaddr,
int *is_gnu_ifunc_p);
/* lookup function from address, return name, start addr and end addr. */
-extern int find_pc_partial_function (CORE_ADDR, char **, CORE_ADDR *,
+extern int find_pc_partial_function (CORE_ADDR, const char **, CORE_ADDR *,
CORE_ADDR *);
extern void clear_pc_function_cache (void);
@@ -1007,62 +1018,6 @@ extern struct type *basic_lookup_transparent_type (const char *);
#define GCC2_COMPILED_FLAG_SYMBOL "gcc2_compiled."
#endif
-/* Functions for dealing with the minimal symbol table, really a misc
- address<->symbol mapping for things we don't have debug symbols for. */
-
-extern void prim_record_minimal_symbol (const char *, CORE_ADDR,
- enum minimal_symbol_type,
- struct objfile *);
-
-extern struct minimal_symbol *prim_record_minimal_symbol_full
- (const char *, int, int, CORE_ADDR,
- enum minimal_symbol_type,
- int section, asection * bfd_section, struct objfile *);
-
-extern struct minimal_symbol *prim_record_minimal_symbol_and_info
- (const char *, CORE_ADDR,
- enum minimal_symbol_type,
- int section, asection * bfd_section, struct objfile *);
-
-extern unsigned int msymbol_hash_iw (const char *);
-
-extern unsigned int msymbol_hash (const char *);
-
-/* Compute the next hash value from previous HASH and the character C. This
- is only a GDB in-memory computed value with no external files compatibility
- requirements. */
-
-#define SYMBOL_HASH_NEXT(hash, c) \
- ((hash) * 67 + tolower ((unsigned char) (c)) - 113)
-
-extern struct objfile * msymbol_objfile (struct minimal_symbol *sym);
-
-extern void
-add_minsym_to_hash_table (struct minimal_symbol *sym,
- struct minimal_symbol **table);
-
-extern struct minimal_symbol *lookup_minimal_symbol (const char *,
- const char *,
- struct objfile *);
-
-extern struct minimal_symbol *lookup_minimal_symbol_text (const char *,
- struct objfile *);
-
-struct minimal_symbol *lookup_minimal_symbol_solib_trampoline (const char *,
- struct objfile
- *);
-
-extern struct minimal_symbol *lookup_minimal_symbol_by_pc_name
- (CORE_ADDR, const char *, struct objfile *);
-
-extern struct minimal_symbol *lookup_minimal_symbol_by_pc (CORE_ADDR);
-
-extern void iterate_over_minimal_symbols (struct objfile *objf,
- const char *name,
- void (*callback) (struct minimal_symbol *,
- void *),
- void *user_data);
-
extern int in_gnu_ifunc_stub (CORE_ADDR pc);
/* Functions for resolving STT_GNU_IFUNC symbols which are implemented only
@@ -1092,28 +1047,8 @@ struct gnu_ifunc_fns
extern const struct gnu_ifunc_fns *gnu_ifunc_fns_p;
-extern struct minimal_symbol *
- lookup_minimal_symbol_and_objfile (const char *,
- struct objfile **);
-
-extern struct minimal_symbol
- *lookup_minimal_symbol_by_pc_section (CORE_ADDR, struct obj_section *);
-
-extern struct minimal_symbol
- *lookup_solib_trampoline_symbol_by_pc (CORE_ADDR);
-
extern CORE_ADDR find_solib_trampoline_target (struct frame_info *, CORE_ADDR);
-extern void init_minimal_symbol_collection (void);
-
-extern struct cleanup *make_cleanup_discard_minimal_symbols (void);
-
-extern void install_minimal_symbols (struct objfile *);
-
-/* Sort all the minimal symbols in OBJFILE. */
-
-extern void msymbols_sort (struct objfile *objfile);
-
struct symtab_and_line
{
/* The program space of this sal. */
@@ -1130,6 +1065,9 @@ struct symtab_and_line
CORE_ADDR end;
int explicit_pc;
int explicit_line;
+
+ /* The probe associated with this symtab_and_line. */
+ struct probe *probe;
};
extern void init_sal (struct symtab_and_line *sal);
@@ -1175,13 +1113,6 @@ extern int find_line_pc_range (struct symtab_and_line, CORE_ADDR *,
extern void resolve_sal_pc (struct symtab_and_line *);
-/* Given a string, return the line specified by it. For commands like "list"
- and "breakpoint". */
-
-extern struct symtabs_and_lines decode_line_spec (char *, int);
-
-extern struct symtabs_and_lines decode_line_spec_1 (char *, int);
-
/* Symmisc.c */
void maintenance_print_symbols (char *, int);
@@ -1217,16 +1148,17 @@ extern void forget_cached_source_info (void);
extern void select_source_symtab (struct symtab *);
-extern char **default_make_symbol_completion_list_break_on
+extern VEC (char_ptr) *default_make_symbol_completion_list_break_on
(char *text, char *word, const char *break_on);
-extern char **default_make_symbol_completion_list (char *, char *);
-extern char **make_symbol_completion_list (char *, char *);
-extern char **make_symbol_completion_list_fn (struct cmd_list_element *,
- char *, char *);
+extern VEC (char_ptr) *default_make_symbol_completion_list (char *, char *);
+extern VEC (char_ptr) *make_symbol_completion_list (char *, char *);
+extern VEC (char_ptr) *make_symbol_completion_list_fn (struct cmd_list_element *,
+ char *, char *);
-extern char **make_file_symbol_completion_list (char *, char *, char *);
+extern VEC (char_ptr) *make_file_symbol_completion_list (char *,
+ char *, char *);
-extern char **make_source_files_completion_list (char *, char *);
+extern VEC (char_ptr) *make_source_files_completion_list (char *, char *);
/* symtab.c */
@@ -1311,8 +1243,14 @@ void fixup_section (struct general_symbol_info *ginfo,
struct objfile *lookup_objfile_from_block (const struct block *block);
+extern int symtab_create_debug;
+
extern int basenames_may_differ;
+int compare_filenames_for_search (const char *filename,
+ const char *search_name,
+ int search_len);
+
int iterate_over_some_symtabs (const char *name,
const char *full_path,
const char *real_path,
@@ -1332,9 +1270,18 @@ DEF_VEC_I (CORE_ADDR);
VEC (CORE_ADDR) *find_pcs_for_symtab_line (struct symtab *symtab, int line,
struct linetable_entry **best_entry);
+/* Callback for LA_ITERATE_OVER_SYMBOLS. The callback will be called
+ once per matching symbol SYM, with DATA being the argument of the
+ same name that was passed to LA_ITERATE_OVER_SYMBOLS. The callback
+ should return nonzero to indicate that LA_ITERATE_OVER_SYMBOLS
+ should continue iterating, or zero to indicate that the iteration
+ should end. */
+
+typedef int (symbol_found_callback_ftype) (struct symbol *sym, void *data);
+
void iterate_over_symbols (const struct block *block, const char *name,
const domain_enum domain,
- int (*callback) (struct symbol *, void *),
+ symbol_found_callback_ftype *callback,
void *data);
struct cleanup *demangle_for_lookup (const char *name, enum language lang,
« no previous file with comments | « gdb/symmisc.c ('k') | gdb/symtab.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698