X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=gdb%2Fsymtab.h;h=4a47d48d5354e184c01b1f71da635a8c9eeac36b;hb=e2ef962041bbe1ed89b238e11ee5a48487f386fb;hp=7cc66673e755975bcae9011c0dba9360cf64e747;hpb=db0fec5c4881dc2e65eeba47cd574379c03a4cf4;p=platform%2Fupstream%2Fbinutils.git diff --git a/gdb/symtab.h b/gdb/symtab.h index 7cc6667..4a47d48 100644 --- a/gdb/symtab.h +++ b/gdb/symtab.h @@ -1,6 +1,6 @@ /* Symbol table definitions for GDB. - Copyright (C) 1986-2013 Free Software Foundation, Inc. + Copyright (C) 1986-2014 Free Software Foundation, Inc. This file is part of GDB. @@ -114,7 +114,7 @@ struct general_symbol_info { LONGEST ivalue; - struct block *block; + const struct block *block; const gdb_byte *bytes; @@ -122,7 +122,7 @@ struct general_symbol_info /* A common block. Used with LOC_COMMON_BLOCK. */ - struct common_block *common_block; + const struct common_block *common_block; /* For opaque typedef struct chain. */ @@ -180,8 +180,8 @@ extern const char *symbol_get_demangled_name extern CORE_ADDR symbol_overlayed_address (CORE_ADDR, struct obj_section *); /* Note that all the following SYMBOL_* macros are used with the - SYMBOL argument being either a partial symbol, a minimal symbol or - a full symbol. All three types have a ginfo field. In particular + SYMBOL argument being either a partial symbol or + a full symbol. Both types have a ginfo field. In particular the SYMBOL_SET_LANGUAGE, SYMBOL_DEMANGLED_NAME, etc. macros cannot be entirely substituted by functions, unless the callers are changed to pass in the ginfo @@ -271,7 +271,7 @@ extern const char *symbol_demangled_name extern int demangle; /* 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, + In C++ and Java, we search for the demangled form of a name, and so sort symbols accordingly. In Ada, however, we search by mangled name. If there is no distinct demangled name, then SYMBOL_SEARCH_NAME returns the same value (same pointer) as SYMBOL_LINKAGE_NAME. */ @@ -339,7 +339,7 @@ struct minimal_symbol The SYMBOL_VALUE_ADDRESS contains the address that this symbol corresponds to. */ - struct general_symbol_info ginfo; + struct general_symbol_info mginfo; /* Size of this symbol. end_psymtab in dbxread.c uses this information to calculate the end of the partial symtab based on the @@ -390,6 +390,45 @@ struct minimal_symbol #define MSYMBOL_HAS_SIZE(msymbol) ((msymbol)->has_size + 0) #define MSYMBOL_TYPE(msymbol) (msymbol)->type +#define MSYMBOL_VALUE(symbol) (symbol)->mginfo.value.ivalue +/* The unrelocated address of the minimal symbol. */ +#define MSYMBOL_VALUE_RAW_ADDRESS(symbol) ((symbol)->mginfo.value.address + 0) +/* The relocated address of the minimal symbol, using the section + offsets from OBJFILE. */ +#define MSYMBOL_VALUE_ADDRESS(objfile, symbol) \ + ((symbol)->mginfo.value.address \ + + ANOFFSET ((objfile)->section_offsets, ((symbol)->mginfo.section))) +/* For a bound minsym, we can easily compute the address directly. */ +#define BMSYMBOL_VALUE_ADDRESS(symbol) \ + MSYMBOL_VALUE_ADDRESS ((symbol).objfile, (symbol).minsym) +#define SET_MSYMBOL_VALUE_ADDRESS(symbol, new_value) \ + ((symbol)->mginfo.value.address = (new_value)) +#define MSYMBOL_VALUE_BYTES(symbol) (symbol)->mginfo.value.bytes +#define MSYMBOL_BLOCK_VALUE(symbol) (symbol)->mginfo.value.block +#define MSYMBOL_VALUE_CHAIN(symbol) (symbol)->mginfo.value.chain +#define MSYMBOL_LANGUAGE(symbol) (symbol)->mginfo.language +#define MSYMBOL_SECTION(symbol) (symbol)->mginfo.section +#define MSYMBOL_OBJ_SECTION(objfile, symbol) \ + (((symbol)->mginfo.section >= 0) \ + ? (&(((objfile)->sections)[(symbol)->mginfo.section])) \ + : NULL) + +#define MSYMBOL_NATURAL_NAME(symbol) \ + (symbol_natural_name (&(symbol)->mginfo)) +#define MSYMBOL_LINKAGE_NAME(symbol) (symbol)->mginfo.name +#define MSYMBOL_PRINT_NAME(symbol) \ + (demangle ? MSYMBOL_NATURAL_NAME (symbol) : MSYMBOL_LINKAGE_NAME (symbol)) +#define MSYMBOL_DEMANGLED_NAME(symbol) \ + (symbol_demangled_name (&(symbol)->mginfo)) +#define MSYMBOL_SET_LANGUAGE(symbol,language,obstack) \ + (symbol_set_language (&(symbol)->mginfo, (language), (obstack))) +#define MSYMBOL_SEARCH_NAME(symbol) \ + (symbol_search_name (&(symbol)->mginfo)) +#define MSYMBOL_MATCHES_SEARCH_NAME(symbol, name) \ + (strcmp_iw (MSYMBOL_SEARCH_NAME (symbol), (name)) == 0) +#define MSYMBOL_SET_NAMES(symbol,linkage_name,len,copy_name,objfile) \ + symbol_set_names (&(symbol)->mginfo, linkage_name, len, copy_name, objfile) + #include "minsyms.h" @@ -418,6 +457,10 @@ typedef enum domain_enum_tag STRUCT_DOMAIN, + /* MODULE_DOMAIN is used in Fortran to hold module type names. */ + + MODULE_DOMAIN, + /* LABEL_DOMAIN may be used for names of labels (for gotos). */ LABEL_DOMAIN, @@ -839,7 +882,7 @@ struct symtab between different symtabs (and normally is for all the symtabs in a given compilation unit). */ - struct blockvector *blockvector; + const struct blockvector *blockvector; /* Table mapping core addresses to line numbers for this file. Can be NULL if none. Never shared between different symtabs. */ @@ -875,11 +918,11 @@ struct symtab /* Name of this source file. This pointer is never NULL. */ - char *filename; + const char *filename; /* Directory in which it was compiled, or NULL if we don't know. */ - char *dirname; + const char *dirname; /* Total number of lines found in source file. */ @@ -1178,6 +1221,9 @@ struct symtab_and_line /* The probe associated with this symtab_and_line. */ struct probe *probe; + /* If PROBE is not NULL, then this is the objfile in which the probe + originated. */ + struct objfile *objfile; }; extern void init_sal (struct symtab_and_line *sal); @@ -1310,8 +1356,8 @@ struct symbol_search struct symbol_search *next; }; -extern void search_symbols (char *, enum search_domain, int, char **, - struct symbol_search **); +extern void search_symbols (const char *, enum search_domain, int, + const char **, struct symbol_search **); extern void free_search_symbols (struct symbol_search *); extern struct cleanup *make_cleanup_free_search_symbols (struct symbol_search **); @@ -1320,9 +1366,8 @@ extern struct cleanup *make_cleanup_free_search_symbols (struct symbol_search FIXME: cagney/2001-03-20: Can't make main_name() const since some of the calling code currently assumes that the string isn't const. */ -extern void set_main_name (const char *name); extern /*const */ char *main_name (void); -extern enum language language_of_main; +extern enum language main_language (void); /* Check global symbols in objfile. */ struct symbol *lookup_global_symbol_from_objfile (const struct objfile *,