20 #if !defined (SYMTAB_H)
169 (
const struct general_symbol_info *);
181 #define SYMBOL_VALUE(symbol) (symbol)->ginfo.value.ivalue
182 #define SYMBOL_VALUE_ADDRESS(symbol) (symbol)->ginfo.value.address
183 #define SYMBOL_VALUE_BYTES(symbol) (symbol)->ginfo.value.bytes
184 #define SYMBOL_VALUE_COMMON_BLOCK(symbol) (symbol)->ginfo.value.common_block
185 #define SYMBOL_BLOCK_VALUE(symbol) (symbol)->ginfo.value.block
186 #define SYMBOL_VALUE_CHAIN(symbol) (symbol)->ginfo.value.chain
187 #define SYMBOL_LANGUAGE(symbol) (symbol)->ginfo.language
188 #define SYMBOL_SECTION(symbol) (symbol)->ginfo.section
189 #define SYMBOL_OBJ_SECTION(objfile, symbol) \
190 (((symbol)->ginfo.section >= 0) \
191 ? (&(((objfile)->sections)[(symbol)->ginfo.section])) \
196 #define SYMBOL_SET_LANGUAGE(symbol,language,obstack) \
197 (symbol_set_language (&(symbol)->ginfo, (language), (obstack)))
199 enum language language,
200 struct obstack *obstack);
207 #define SYMBOL_SET_LINKAGE_NAME(symbol,linkage_name) \
208 (symbol)->ginfo.name = (linkage_name)
212 #define SYMBOL_SET_NAMES(symbol,linkage_name,len,copy_name,objfile) \
213 symbol_set_names (&(symbol)->ginfo, linkage_name, len, copy_name, objfile)
231 #define SYMBOL_NATURAL_NAME(symbol) \
232 (symbol_natural_name (&(symbol)->ginfo))
234 (
const struct general_symbol_info *
symbol);
241 #define SYMBOL_LINKAGE_NAME(symbol) (symbol)->ginfo.name
245 #define SYMBOL_DEMANGLED_NAME(symbol) \
246 (symbol_demangled_name (&(symbol)->ginfo))
248 (
const struct general_symbol_info *
symbol);
260 #define SYMBOL_PRINT_NAME(symbol) \
261 (demangle ? SYMBOL_NATURAL_NAME (symbol) : SYMBOL_LINKAGE_NAME (symbol))
269 #define SYMBOL_SEARCH_NAME(symbol) \
270 (symbol_search_name (&(symbol)->ginfo))
276 #define SYMBOL_MATCHES_SEARCH_NAME(symbol, name) \
277 (strcmp_iw (SYMBOL_SEARCH_NAME (symbol), (name)) == 0)
333 struct general_symbol_info mginfo;
350 unsigned int created_by_gdb : 1;
353 unsigned int target_flag_1 : 1;
354 unsigned int target_flag_2 : 1;
359 unsigned int has_size : 1;
372 #define MSYMBOL_TARGET_FLAG_1(msymbol) (msymbol)->target_flag_1
373 #define MSYMBOL_TARGET_FLAG_2(msymbol) (msymbol)->target_flag_2
374 #define MSYMBOL_SIZE(msymbol) ((msymbol)->size + 0)
375 #define SET_MSYMBOL_SIZE(msymbol, sz) \
378 (msymbol)->size = sz; \
379 (msymbol)->has_size = 1; \
381 #define MSYMBOL_HAS_SIZE(msymbol) ((msymbol)->has_size + 0)
382 #define MSYMBOL_TYPE(msymbol) (msymbol)->type
384 #define MSYMBOL_VALUE(symbol) (symbol)->mginfo.value.ivalue
386 #define MSYMBOL_VALUE_RAW_ADDRESS(symbol) ((symbol)->mginfo.value.address + 0)
389 #define MSYMBOL_VALUE_ADDRESS(objfile, symbol) \
390 ((symbol)->mginfo.value.address \
391 + ANOFFSET ((objfile)->section_offsets, ((symbol)->mginfo.section)))
393 #define BMSYMBOL_VALUE_ADDRESS(symbol) \
394 MSYMBOL_VALUE_ADDRESS ((symbol).objfile, (symbol).minsym)
395 #define SET_MSYMBOL_VALUE_ADDRESS(symbol, new_value) \
396 ((symbol)->mginfo.value.address = (new_value))
397 #define MSYMBOL_VALUE_BYTES(symbol) (symbol)->mginfo.value.bytes
398 #define MSYMBOL_BLOCK_VALUE(symbol) (symbol)->mginfo.value.block
399 #define MSYMBOL_VALUE_CHAIN(symbol) (symbol)->mginfo.value.chain
400 #define MSYMBOL_LANGUAGE(symbol) (symbol)->mginfo.language
401 #define MSYMBOL_SECTION(symbol) (symbol)->mginfo.section
402 #define MSYMBOL_OBJ_SECTION(objfile, symbol) \
403 (((symbol)->mginfo.section >= 0) \
404 ? (&(((objfile)->sections)[(symbol)->mginfo.section])) \
407 #define MSYMBOL_NATURAL_NAME(symbol) \
408 (symbol_natural_name (&(symbol)->mginfo))
409 #define MSYMBOL_LINKAGE_NAME(symbol) (symbol)->mginfo.name
410 #define MSYMBOL_PRINT_NAME(symbol) \
411 (demangle ? MSYMBOL_NATURAL_NAME (symbol) : MSYMBOL_LINKAGE_NAME (symbol))
412 #define MSYMBOL_DEMANGLED_NAME(symbol) \
413 (symbol_demangled_name (&(symbol)->mginfo))
414 #define MSYMBOL_SET_LANGUAGE(symbol,language,obstack) \
415 (symbol_set_language (&(symbol)->mginfo, (language), (obstack)))
416 #define MSYMBOL_SEARCH_NAME(symbol) \
417 (symbol_search_name (&(symbol)->mginfo))
418 #define MSYMBOL_MATCHES_SEARCH_NAME(symbol, name) \
419 (strcmp_iw (MSYMBOL_SEARCH_NAME (symbol), (name)) == 0)
420 #define MSYMBOL_SET_NAMES(symbol,linkage_name,len,copy_name,objfile) \
421 symbol_set_names (&(symbol)->mginfo, linkage_name, len, copy_name, objfile)
466 #define SYMBOL_DOMAIN_BITS 4
624 void (*describe_location) (
struct symbol *
symbol, CORE_ADDR addr,
650 struct gdbarch *gdbarch,
651 unsigned char *registers_used,
652 CORE_ADDR pc,
const char *result_name);
666 void (*find_frame_base_location) (
struct symbol *framefunc, CORE_ADDR pc,
667 const gdb_byte **start,
size_t *length);
699 #define SYMBOL_ACLASS_BITS 6
708 struct general_symbol_info ginfo;
741 unsigned int is_objfile_owned : 1;
745 unsigned is_argument : 1;
748 unsigned is_inlined : 1;
752 unsigned is_cplus_template_function : 1;
790 #define SYMBOL_DOMAIN(symbol) (symbol)->domain
791 #define SYMBOL_IMPL(symbol) (symbol_impls[(symbol)->aclass_index])
792 #define SYMBOL_ACLASS_INDEX(symbol) (symbol)->aclass_index
793 #define SYMBOL_CLASS(symbol) (SYMBOL_IMPL (symbol).aclass)
794 #define SYMBOL_OBJFILE_OWNED(symbol) ((symbol)->is_objfile_owned)
795 #define SYMBOL_IS_ARGUMENT(symbol) (symbol)->is_argument
796 #define SYMBOL_INLINED(symbol) (symbol)->is_inlined
797 #define SYMBOL_IS_CPLUS_TEMPLATE_FUNCTION(symbol) \
798 (symbol)->is_cplus_template_function
799 #define SYMBOL_TYPE(symbol) (symbol)->type
800 #define SYMBOL_LINE(symbol) (symbol)->line
801 #define SYMBOL_COMPUTED_OPS(symbol) (SYMBOL_IMPL (symbol).ops_computed)
802 #define SYMBOL_BLOCK_OPS(symbol) (SYMBOL_IMPL (symbol).ops_block)
803 #define SYMBOL_REGISTER_OPS(symbol) (SYMBOL_IMPL (symbol).ops_register)
804 #define SYMBOL_LOCATION_BATON(symbol) (symbol)->aux_value
907 CORE_ADDR offsets[1];
910 #define ANOFFSET(secoff, whichone) \
912 ? (internal_error (__FILE__, __LINE__, \
913 _("Section index is uninitialized")), -1) \
914 : secoff->offsets[whichone])
917 #define SIZEOF_N_SECTION_OFFSETS(n) \
918 (sizeof (struct section_offsets) \
919 + sizeof (((struct section_offsets *) 0)->offsets) * ((n)-1))
965 #define SYMTAB_COMPUNIT(symtab) ((symtab)->compunit_symtab)
966 #define SYMTAB_LINETABLE(symtab) ((symtab)->linetable)
967 #define SYMTAB_LANGUAGE(symtab) ((symtab)->language)
968 #define SYMTAB_BLOCKVECTOR(symtab) \
969 COMPUNIT_BLOCKVECTOR (SYMTAB_COMPUNIT (symtab))
970 #define SYMTAB_OBJFILE(symtab) \
971 COMPUNIT_OBJFILE (SYMTAB_COMPUNIT (symtab))
972 #define SYMTAB_PSPACE(symtab) (SYMTAB_OBJFILE (symtab)->pspace)
973 #define SYMTAB_DIRNAME(symtab) \
974 COMPUNIT_DIRNAME (SYMTAB_COMPUNIT (symtab))
1063 unsigned int locations_valid : 1;
1067 unsigned int epilogue_unwind_valid : 1;
1094 #define COMPUNIT_OBJFILE(cust) ((cust)->objfile)
1095 #define COMPUNIT_FILETABS(cust) ((cust)->filetabs)
1096 #define COMPUNIT_DEBUGFORMAT(cust) ((cust)->debugformat)
1097 #define COMPUNIT_PRODUCER(cust) ((cust)->producer)
1098 #define COMPUNIT_DIRNAME(cust) ((cust)->dirname)
1099 #define COMPUNIT_BLOCKVECTOR(cust) ((cust)->blockvector)
1100 #define COMPUNIT_BLOCK_LINE_SECTION(cust) ((cust)->block_line_section)
1101 #define COMPUNIT_LOCATIONS_VALID(cust) ((cust)->locations_valid)
1102 #define COMPUNIT_EPILOGUE_UNWIND_VALID(cust) ((cust)->epilogue_unwind_valid)
1103 #define COMPUNIT_CALL_SITE_HTAB(cust) ((cust)->call_site_htab)
1104 #define COMPUNIT_MACRO_TABLE(cust) ((cust)->macro_table)
1108 #define ALL_COMPUNIT_FILETABS(cu, s) \
1109 for ((s) = (cu) -> filetabs; (s) != NULL; (s) = (s) -> next)
1136 #define VTBL_FNADDR_OFFSET 2
1198 const struct block *,
1216 const struct block *,
1289 int *is_gnu_ifunc_p);
1324 #ifndef GCC_COMPILED_FLAG_SYMBOL
1325 #define GCC_COMPILED_FLAG_SYMBOL "gcc_compiled."
1329 #ifndef GCC2_COMPILED_FLAG_SYMBOL
1330 #define GCC2_COMPILED_FLAG_SYMBOL "gcc2_compiled."
1345 CORE_ADDR *function_address_p);
1354 #define gnu_ifunc_resolve_addr gnu_ifunc_fns_p->gnu_ifunc_resolve_addr
1355 #define gnu_ifunc_resolve_name gnu_ifunc_fns_p->gnu_ifunc_resolve_name
1356 #define gnu_ifunc_resolver_stop gnu_ifunc_fns_p->gnu_ifunc_resolver_stop
1357 #define gnu_ifunc_resolver_return_stop \
1358 gnu_ifunc_fns_p->gnu_ifunc_resolver_return_stop
1405 struct obj_section *,
int);
1447 extern VEC (
char_ptr) *default_make_symbol_completion_list_break_on
1448 (
const char *text,
const char *word,
const char *break_on,
1450 extern VEC (
char_ptr) *default_make_symbol_completion_list (
const char *,
1453 extern VEC (
char_ptr) *make_symbol_completion_list (
const char *,
const char *);
1454 extern VEC (
char_ptr) *make_symbol_completion_type (
const char *,
const char *,
1460 extern VEC (
char_ptr) *make_file_symbol_completion_list (
const char *,
1464 extern VEC (
char_ptr) *make_source_files_completion_list (
const char *,
1481 CORE_ADDR func_addr);
1553 const char *search_name);
1556 const char *real_path,
1588 const char **result_name);
const struct symbol_register_ops * ops_register
void symbol_set_symtab(struct symbol *symbol, struct symtab *symtab)
struct symbol * lookup_symbol(const char *, const struct block *, const domain_enum, struct field_of_this_result *)
struct symtab * find_line_symtab(struct symtab *, int, int *, int *)
const char * symbol_natural_name(const struct general_symbol_info *symbol)
struct symtab * compunit_primary_filetab(const struct compunit_symtab *cust)
const char enum type_code const char const char enum type_code const char const char const char const char const char *int matching_obj_sections(struct obj_section *, struct obj_section *)
struct symtab_and_line find_function_start_sal(struct symbol *sym, int)
const struct blockvector * blockvector
struct cleanup * make_cleanup_free_search_symbols(struct symbol_search **)
void iterate_over_symtabs(const char *name, int(*callback)(struct symtab *symtab, void *data), void *data)
union general_symbol_info::@159 language_specific
int( symbol_found_callback_ftype)(struct symbol *sym, void *data)
void reread_symbols(void)
int register_symbol_register_impl(enum address_class, const struct symbol_register_ops *)
void clear_pc_function_cache(void)
#define gnu_ifunc_resolver_stop
#define SYMBOL_DOMAIN_BITS
struct type ** const(pascal_builtin_types[])
int register_symbol_block_impl(enum address_class aclass, const struct symbol_block_ops *ops)
enum domain_enum_tag domain_enum
struct type * lookup_transparent_type(const char *)
struct symbol * lookup_global_symbol_from_objfile(struct objfile *main_objfile, const char *name, const domain_enum domain)
struct symbol * lookup_language_this(const struct language_defn *lang, const struct block *block)
const char * symbol_search_name(const struct general_symbol_info *)
struct symbol ** template_arguments
VEC(char_ptr)*default_make_symbol_completion_list_break_on(const char *text
unsigned char location_has_loclist
struct obj_section * section
struct symbol * find_pc_sect_function(CORE_ADDR, struct obj_section *)
struct symbol * lookup_symbol_in_static_block(const char *name, const struct block *block, const domain_enum domain)
int in_gnu_ifunc_stub(CORE_ADDR pc)
const char multiple_symbols_ask[]
struct symbol * lookup_symbol_in_block(const char *name, const struct block *block, const domain_enum domain)
CORE_ADDR skip_prologue_using_sal(struct gdbarch *gdbarch, CORE_ADDR func_addr)
struct compunit_symtab * compunit_symtab_ptr
struct linetable * linetable
const struct symbol_block_ops * ops_block
int find_pc_partial_function(CORE_ADDR, const char **, CORE_ADDR *, CORE_ADDR *)
void iterate_over_symbols(const struct block *block, const char *name, const domain_enum domain, symbol_found_callback_ftype *callback, void *data)
struct symbol * basic_lookup_symbol_nonlocal(const struct language_defn *langdef, const char *, const struct block *, const domain_enum)
void print_source_lines(struct symtab *, int, int, enum print_source_lines_flags)
unsigned int symbol_lookup_debug
struct gdbarch * symbol_arch(const struct symbol *symbol)
struct fn_fieldlist * fn_field
union general_symbol_info::@158 value
const char * multiple_symbols_select_mode(void)
struct compunit_symtab ** includes
const char * symbol_demangled_name(const struct general_symbol_info *symbol)
struct symtab * find_pc_line_symtab(CORE_ADDR)
struct symtab * lookup_symtab(const char *)
struct symbol * allocate_symbol(struct objfile *)
void expand_symtab_containing_pc(CORE_ADDR, struct obj_section *)
int find_pc_line_pc_range(CORE_ADDR, CORE_ADDR *, CORE_ADDR *)
struct symtab * symtab_ptr
struct symbol * lookup_static_symbol(const char *name, const domain_enum domain)
int struct linetable_entry ** best_entry
int find_pc_partial_function_gnu_ifunc(CORE_ADDR pc, const char **name, CORE_ADDR *address, CORE_ADDR *endaddr, int *is_gnu_ifunc_p)
void select_source_symtab(struct symtab *)
struct symbol * find_pc_function(CORE_ADDR)
void forget_cached_source_info_for_objfile(struct objfile *)
int iterate_over_some_symtabs(const char *name, const char *real_path, int(*callback)(struct symtab *symtab, void *data), void *data, struct compunit_symtab *first, struct compunit_symtab *after_last)
struct type * lookup_union(const char *, const struct block *)
int find_line_pc_range(struct symtab_and_line, CORE_ADDR *, CORE_ADDR *)
struct objfile * symbol_objfile(const struct symbol *symbol)
#define SYMBOL_ACLASS_BITS
const struct block * block
enum language compunit_language(const struct compunit_symtab *cust)
struct compunit_symtab * find_pc_sect_compunit_symtab(CORE_ADDR, struct obj_section *)
int currently_reading_symtab
struct compunit_symtab * next
struct type * lookup_enum(const char *, const struct block *)
const char * domain_name(domain_enum)
void resolve_sal_pc(struct symtab_and_line *)
int register_symbol_computed_impl(enum address_class, const struct symbol_computed_ops *)
int identify_source_line(struct symtab *, int, int, CORE_ADDR)
CORE_ADDR find_solib_trampoline_target(struct frame_info *, CORE_ADDR)
CORE_ADDR symbol_overlayed_address(CORE_ADDR, struct obj_section *)
struct symtab * last_filetab
struct type * basic_lookup_transparent_type(const char *)
const struct gnu_ifunc_fns * gnu_ifunc_fns_p
const char * search_domain_name(enum search_domain)
const char const char int
struct symtab_and_line find_pc_sect_line(CORE_ADDR, struct obj_section *, int)
int producer_is_realview(const char *producer)
const char multiple_symbols_cancel[]
struct macro_table * macro_table
struct symtab_and_line find_pc_line(CORE_ADDR, int)
void symbol_set_demangled_name(struct general_symbol_info *, const char *, struct obstack *)
void search_symbols(const char *, enum search_domain, int, const char **, struct symbol_search **)
int symbol_matches_domain(enum language symbol_language, domain_enum symbol_domain, domain_enum domain)
struct symbol_search * next
__extension__ enum language language
void free_search_symbols(struct symbol_search *)
struct program_space * pspace
#define gnu_ifunc_resolve_name
struct symbol * lookup_global_symbol(const char *name, const struct block *block, const domain_enum domain)
struct symbol * fixup_symbol_section(struct symbol *, struct objfile *)
int find_line_pc(struct symtab *, int, CORE_ADDR *)
struct type * lookup_struct(const char *, const struct block *)
struct general_symbol_info ginfo
const char * symbol_get_demangled_name(const struct general_symbol_info *)
unsigned int symtab_create_debug
struct symbol * lookup_symbol_in_language(const char *, const struct block *, const domain_enum, enum language, struct field_of_this_result *)
struct compunit_symtab * compunit_symtab
void symbol_set_language(struct general_symbol_info *symbol, enum language language, struct obstack *obstack)
struct objfile * lookup_objfile_from_block(const struct block *block)
struct template_symbol * allocate_template_symbol(struct objfile *)
void forget_cached_source_info(void)
struct cleanup * demangle_for_lookup(const char *name, enum language lang, const char **result_name)
const struct common_block * common_block
struct symtab_and_line * sals
#define gnu_ifunc_resolver_return_stop
void initialize_objfile_symbol(struct symbol *)
struct symtab * symbol_symtab(const struct symbol *symbol)
const char multiple_symbols_all[]
struct general_symbol_info::@159::mangled_lang mangled_lang
struct compunit_symtab * find_pc_compunit_symtab(CORE_ADDR)
struct compunit_symtab * user
const struct symbol_computed_ops * ops_computed
const struct block * block_found
int compare_filenames_for_search(const char *filename, const char *search_name)
void skip_prologue_sal(struct symtab_and_line *)
void fixup_section(struct general_symbol_info *ginfo, CORE_ADDR addr, struct objfile *objfile)
void init_sal(struct symtab_and_line *sal)
#define gnu_ifunc_resolve_addr
enum language main_language(void)
char * copy_name(struct stoken token)
const char * demangled_name
__extension__ enum domain_enum_tag domain
const ULONGEST const LONGEST len
void symbol_set_names(struct general_symbol_info *symbol, const char *linkage_name, int len, int copy_name, struct objfile *objfile)