35#include "gdbsupport/gdb_obstack.h"
54#include "aout/aout64.h"
55#include "aout/stab_gnu.h"
94#define LDSYMOFF(p) (((struct symloc *)((p)->read_symtab_private))->ldsymoff)
95#define LDSYMLEN(p) (((struct symloc *)((p)->read_symtab_private))->ldsymlen)
96#define SYMLOC(p) ((struct symloc *)((p)->read_symtab_private))
97#define SYMBOL_SIZE(p) (SYMLOC(p)->symbol_size)
98#define SYMBOL_OFFSET(p) (SYMLOC(p)->symbol_offset)
99#define STRING_OFFSET(p) (SYMLOC(p)->string_offset)
100#define FILE_STRING_OFFSET(p) (SYMLOC(p)->file_string_offset)
101#define PST_LANGUAGE(p) (SYMLOC(p)->pst_language)
172 complaint (_(
"unknown symbol type %s"), arg1);
178 complaint (_(
"N_LBRAC/N_RBRAC symbol mismatch at symtab pos %d"), arg1);
184 complaint (_(
"\"repeated\" header file %s not "
185 "previously seen, at symtab pos %d"),
206 for (sec = sym_bfd->sections; sec; sec = sec->next)
207 if (bfd_section_flags (sec) & SEC_CODE)
209 CORE_ADDR sec_start = bfd_section_vma (sec);
210 CORE_ADDR sec_end = sec_start + bfd_section_size (sec);
214 if (sec_start < start)
229 error (_(
"Can't find any code sections in symbol file"));
289 const char *, CORE_ADDR,
int,
299 const char *, CORE_ADDR,
int);
413explicit_lookup_type (
int real_filenum,
int index)
417 if (index >=
f->length)
420 f->vector = (
struct type **)
422 memset (&
f->vector[
f->length / 2],
423 '\0',
f->length * sizeof (
struct type *) / 2);
425 return &
f->vector[index];
431 const char *
name, CORE_ADDR address,
int type,
482 if (
name[8] ==
'C' && strcmp (
"__DYNAMIC",
name) == 0)
487 const char *tempstring =
name;
489 if (tempstring[0] == bfd_get_symbol_leading_char (
objfile->
obfd.get ()))
581#define DBX_STRINGTAB_SIZE_SIZE sizeof(long)
588 const char *
name = bfd_get_filename (sym_bfd);
600#define STRING_TABLE_OFFSET (sym_bfd->origin + obj_str_filepos (sym_bfd))
601#define SYMBOL_TABLE_OFFSET (sym_bfd->origin + obj_sym_filepos (sym_bfd))
605 text_sect = bfd_get_section_by_name (sym_bfd,
".text");
607 error (_(
"Can't find .text section in symbol file"));
642 memset (size_temp, 0,
sizeof (size_temp));
643 val = bfd_bread (size_temp,
sizeof (size_temp), sym_bfd);
669 error (_(
"ridiculous string table size (%d bytes)."),
712 xfree (hfiles[i].vector);
721static struct external_nlist
symbuf[4096];
772 nbytes = bfd_bread (
symbuf, count, sym_bfd);
778 file_ptr filepos = (*symbuf_sections)[
sect_idx]->filepos;
780 if (bfd_seek (sym_bfd, filepos,
SEEK_SET) != 0)
788 if (count >
sizeof (
symbuf))
790 nbytes = bfd_bread (
symbuf, count, sym_bfd);
795 else if (nbytes == 0)
796 error (_(
"Premature end of file reading symbol table"));
815#define INTERNALIZE_SYMBOL(intern, extern, abfd) \
817 (intern).n_strx = bfd_h_get_32 (abfd, (extern)->e_strx); \
818 (intern).n_type = bfd_h_get_8 (abfd, (extern)->e_type); \
819 (intern).n_other = 0; \
820 (intern).n_desc = bfd_h_get_16 (abfd, (extern)->e_desc); \
821 if (bfd_get_sign_extend_vma (abfd)) \
822 (intern).n_value = bfd_h_get_signed_32 (abfd, (extern)->e_value); \
824 (intern).n_value = bfd_h_get_32 (abfd, (extern)->e_value); \
839 struct internal_nlist nlist;
862 if (bincl.instance == instance
863 && strcmp (
name, bincl.name) == 0)
877 const char *namestring;
881 || nlist->n_strx + file_string_table_offset < nlist->n_strx)
883 complaint (_(
"bad string table offset in symbol %d"),
885 namestring =
"<bad string table offset>";
900 const char *colon = strchr (namestring,
':');
904 n = colon - namestring;
906 char *p = (
char *) alloca (n + 2);
907 strncpy (p, namestring, n);
921 if (msym.
minsym == NULL && filename != NULL)
927 if (msym.
minsym == NULL && filename != NULL)
941 complaint (_(
"function `%s' appears to be defined "
942 "outside of all compilation units"),
955 struct external_nlist *bufp = 0;
956 struct internal_nlist nlist;
959 const char *sym_name;
962 const char *namestring;
964 int past_first_source_file = 0;
965 CORE_ADDR last_function_start = 0;
974 const char **psymtab_include_list;
975 int includes_allocated;
980 int dependencies_used, dependencies_allocated;
994 includes_allocated = 30;
996 psymtab_include_list = (
const char **) alloca (includes_allocated *
997 sizeof (
const char *));
999 dependencies_allocated = 30;
1000 dependencies_used = 0;
1006 std::vector<struct header_file_location> bincl_storage;
1007 scoped_restore restore_bincl_global
1008 = make_scoped_restore (&
bincl_list, &bincl_storage);
1018 textlow_not_set = 1;
1042 if (data_sect_index == -1)
1044 if (data_sect_index == -1)
1062 if (bfd_h_get_8 (abfd, bufp->e_type) == N_SLINE)
1082 switch (nlist.n_type)
1088 case N_TEXT | N_EXT:
1089 case N_NBTEXT | N_EXT:
1092 case N_DATA | N_EXT:
1093 case N_NBDATA | N_EXT:
1098 case N_NBBSS | N_EXT:
1099 case N_SETV | N_EXT:
1124 if ((namestring[0] ==
'-' && namestring[1] ==
'l')
1125 || (namestring[(nsl = strlen (namestring)) - 1] ==
'o'
1126 && namestring[nsl - 2] ==
'.'))
1128 if (past_first_source_file && pst
1134 pst, psymtab_include_list,
1138 dependency_list, dependencies_used,
1142 dependencies_used = 0;
1146 past_first_source_file = 1;
1155 case N_UNDF | N_EXT:
1175 past_first_source_file = 1;
1180 error (_(
"string table offset backs up at %d"),
symnum);
1199 case N_INDR | N_EXT:
1201 case N_SETA | N_EXT:
1203 case N_SETT | N_EXT:
1205 case N_SETD | N_EXT:
1207 case N_SETB | N_EXT:
1218 static int prev_so_symnum = -10;
1219 static int first_so_symnum;
1221 static const char *dirname_nso;
1222 int prev_textlow_not_set;
1224 valu = nlist.n_value;
1226 prev_textlow_not_set = textlow_not_set;
1232 if (nlist.n_value == 0
1235 textlow_not_set = 1;
1239 textlow_not_set = 0;
1241 past_first_source_file = 1;
1243 if (prev_so_symnum !=
symnum - 1)
1245 first_so_symnum =
symnum;
1250 pst, psymtab_include_list,
1254 dependency_list, dependencies_used,
1255 prev_textlow_not_set);
1258 dependencies_used = 0;
1270 if (*namestring ==
'\000')
1278 p = lbasename (namestring);
1279 if (p != namestring && *p ==
'\000')
1283 dirname_nso = namestring;
1326 complaint (_(
"N_BINCL %s not in entries for "
1327 "any file, at symtab pos %d"),
1331 bincl_list->emplace_back (namestring, nlist.n_value, pst);
1335 goto record_include_file;
1365 if (pst && filename_cmp (namestring, pst->
filename) == 0)
1370 for (i = 0; i < includes_used; i++)
1371 if (filename_cmp (namestring, psymtab_include_list[i]) == 0)
1380 record_include_file:
1382 psymtab_include_list[includes_used++] = namestring;
1383 if (includes_used >= includes_allocated)
1385 const char **orig = psymtab_include_list;
1387 psymtab_include_list = (
const char **)
1388 alloca ((includes_allocated *= 2) *
sizeof (
const char *));
1389 memcpy (psymtab_include_list, orig,
1390 includes_used *
sizeof (
const char *));
1417 if (pst && nlist.n_type == N_FUN && *namestring ==
'\000')
1424 valu = nlist.n_value + last_function_start;
1430 p = (
char *) strchr (namestring,
':');
1438 std::string
name (namestring, p - namestring);
1439 gdb::unique_xmalloc_ptr<char> new_name
1441 if (new_name !=
nullptr)
1443 sym_len = strlen (new_name.get ());
1450 std::string
name (namestring, p - namestring);
1451 gdb::unique_xmalloc_ptr<char> new_name
1453 if (new_name !=
nullptr)
1455 sym_len = strlen (new_name.get ());
1463 sym_name = namestring;
1464 sym_len = p - namestring;
1478 pst->
add_psymbol (gdb::string_view (sym_name, sym_len),
true,
1485 complaint (_(
"static `%*s' appears to be defined "
1486 "outside of all compilation units"),
1494 pst->
add_psymbol (gdb::string_view (sym_name, sym_len),
true,
1501 complaint (_(
"global `%*s' appears to be defined "
1502 "outside of all compilation units"),
1513 if (p >= namestring + 2
1514 || (p == namestring + 1
1515 && namestring[0] !=
' '))
1518 pst->
add_psymbol (gdb::string_view (sym_name, sym_len),
1524 complaint (_(
"enum, struct, or union `%*s' appears "
1525 "to be defined outside of all "
1526 "compilation units"),
1532 pst->
add_psymbol (gdb::string_view (sym_name, sym_len),
1538 complaint (_(
"typedef `%*s' appears to be defined "
1539 "outside of all compilation units"),
1547 if (p != namestring)
1550 pst->
add_psymbol (gdb::string_view (sym_name, sym_len),
1556 complaint (_(
"typename `%*s' appears to be defined "
1557 "outside of all compilation units"),
1578 while ((*p >=
'0' && *p <=
'9')
1579 || *p ==
'(' || *p ==
',' || *p ==
')'
1601 while (*p && *p !=
';' && *p !=
',')
1607 if (*p ==
'\\' || (*p ==
'?' && p[1] ==
'\0'))
1612 for (q = p; *q && *q !=
':'; q++)
1617 pst->
add_psymbol (gdb::string_view (p, q - p),
true,
1623 complaint (_(
"enum constant `%*s' appears to be defined "
1624 "outside of all compilation units"),
1625 ((
int) (q - p)), p);
1629 while (*p && *p !=
',')
1641 pst->
add_psymbol (gdb::string_view (sym_name, sym_len),
true,
1647 complaint (_(
"constant `%*s' appears to be defined "
1648 "outside of all compilation units"),
1656 std::string
name (namestring, (p - namestring));
1663 if (nlist.n_value == 0
1670 if (
minsym.minsym != NULL)
1673 if (pst && textlow_not_set
1677 textlow_not_set = 0;
1683 last_function_start = nlist.n_value;
1692 && (nlist.n_value != 0))))
1695 textlow_not_set = 0;
1698 pst->
add_psymbol (gdb::string_view (sym_name, sym_len),
true,
1712 std::string
name (namestring, (p - namestring));
1719 if (nlist.n_value == 0
1726 if (
minsym.minsym != NULL)
1729 if (pst && textlow_not_set
1733 textlow_not_set = 0;
1739 last_function_start = nlist.n_value;
1748 && (nlist.n_value != 0))))
1751 textlow_not_set = 0;
1754 pst->
add_psymbol (gdb::string_view (sym_name, sym_len),
true,
1799 complaint (_(
"unknown symbol descriptor `%c'"),
1820 if (needed_pst == pst)
1828 for (i = 0; i < dependencies_used; i++)
1829 if (dependency_list[i] == needed_pst)
1839 dependency_list[dependencies_used++] = needed_pst;
1840 if (dependencies_used >= dependencies_allocated)
1846 alloca ((dependencies_allocated *= 2)
1848 memcpy (dependency_list, orig,
1853 "Had to reallocate "
1854 "dependency list.\n");
1856 "New dependencies allocated: %d\n",
1857 dependencies_allocated);
1872 psymtab_include_list, includes_used,
1874 (CORE_ADDR) 0, dependency_list,
1875 dependencies_used, textlow_not_set);
1878 dependencies_used = 0;
1885 HANDLE_RBRAC (nlist.n_value);
1931 CORE_ADDR text_end =
1938 pst, psymtab_include_list, includes_used,
1942 dependency_list, dependencies_used, textlow_not_set);
1955 const char *filename, CORE_ADDR textlow,
int ldsymoff)
1985 const char **include_list,
int num_includes,
1986 int capping_symbol_offset, CORE_ADDR capping_text,
1988 int number_dependencies,
1989 int textlow_not_set)
1994 if (capping_symbol_offset != -1)
2024 char *p = (
char *) alloca (n + 2);
2029 if (
minsym.minsym == NULL)
2049 else if (textlow_not_set)
2059 if (!p1->text_high_valid && p1->text_low_valid && p1 != pst)
2068 if (number_dependencies)
2078 for (i = 0; i < num_includes; i++)
2099 if (num_includes == 0
2100 && number_dependencies == 0
2122 gdb_assert (!pst->
readin);
2149 gdb_assert (!self->
readin);
2156 scoped_restore restore_stabs_data = make_scoped_restore (&
stabs_data);
2157 gdb::unique_xmalloc_ptr<gdb_byte> data_holder;
2181 const char *namestring;
2182 struct external_nlist *bufp;
2183 struct internal_nlist nlist;
2185 unsigned max_symnum;
2189 CORE_ADDR text_offset;
2226 if (nlist.n_type == N_TEXT)
2228 const char *tempstring = namestring;
2234 if (tempstring[0] == bfd_get_symbol_leading_char (
symfile_bfd))
2236 if (startswith (tempstring,
"__gnu_compiled"))
2252 if (bfd_h_get_8 (abfd, bufp->e_type) != N_SO)
2253 error (_(
"First symbol in segment of executable not a source symbol"));
2268 type = bfd_h_get_8 (abfd, bufp->e_type);
2274 if (
sizeof (nlist.n_value) > 4
2276 && (
type == N_LSYM ||
type == N_PSYM))
2286 nlist.n_value = (nlist.n_value ^ 0x80000000) - 0x80000000;
2293 else if (
type == N_TEXT)
2306 else if (
type & N_EXT ||
type == (
unsigned char) N_TEXT
2307 ||
type == (
unsigned char) N_NBTEXT)
2350 struct obstack *obstack)
2401 static CORE_ADDR function_start_offset;
2405 static CORE_ADDR last_function_start;
2411 static int sline_found_in_function = 1;
2415 static int n_opt_found;
2434 if (*
name ==
'\000')
2450 if (sline_found_in_function)
2452 CORE_ADDR addr = last_function_start + valu;
2472 function_start_offset = 0;
2477 sline_found_in_function = 0;
2482 last_function_start = valu;
2484 goto define_a_symbol;
2491 if (n_opt_found && desc == 1)
2494 valu += function_start_offset;
2504 if (n_opt_found && desc == 1)
2507 valu += function_start_offset;
2516 if (desc != cstk.
depth)
2525 complaint (_(
"misplaced N_LBRAC entry; discarding local "
2526 "symbols which have no enclosing block"));
2545 complaint (_(
"block start larger than block end"));
2597 if (*
name ==
'\000')
2600 function_start_offset = 0;
2637 valu += function_start_offset;
2656 last_function_start : valu;
2660 sline_found_in_function = 1;
2703 p = strchr (
name,
':');
2704 if (p != 0 && p[1] ==
'S')
2713 goto define_a_symbol;
2727 internal_error (_(
"failed internal consistency check"));
2734 goto define_a_symbol;
2740 goto define_a_symbol;
2744 goto define_a_symbol;
2749 goto define_a_symbol;
2785 const char *colon_pos = strchr (
name,
':');
2787 if (colon_pos == NULL)
2790 deftype = colon_pos[1];
2805 if (
minsym.minsym != NULL)
2810 function_start_offset = valu;
2816 complaint (_(
"unmatched N_LBRAC before symtab pos %d"),
2899 const char *s =
name;
2942 CORE_ADDR textaddr,
unsigned int textsize,
2943 const std::vector<asection *> &stabsects,
2944 file_ptr stabstroffset,
unsigned int stabstrsize)
2948 const char *
name = bfd_get_filename (sym_bfd);
2949 unsigned int stabsize;
2957#define COFF_STABS_SYMBOL_SIZE 12
2961 if (stabstrsize > bfd_get_size (sym_bfd))
2962 error (_(
"ridiculous string table size: %d bytes"), stabstrsize);
2969 val = bfd_seek (sym_bfd, stabstroffset,
SEEK_SET);
2973 if (val != stabstrsize)
2985 scoped_restore save_symbuf_sections
2987 if (stabsects.size () == 1)
2989 stabsize = bfd_section_size (stabsects[0]);
2996 for (asection *section : stabsects)
2998 stabsize = bfd_section_size (section);
3031 file_ptr stabstroffset,
unsigned int stabstrsize)
3035 const char *
name = bfd_get_filename (sym_bfd);
3046#define ELF_STABS_SYMBOL_SIZE 12
3054 if (stabstrsize > bfd_get_size (sym_bfd))
3055 error (_(
"ridiculous string table size: %d bytes"), stabstrsize);
3062 val = bfd_seek (sym_bfd, stabstroffset,
SEEK_SET);
3066 if (val != stabstrsize)
3078 scoped_restore restore_stabs_data = make_scoped_restore (&
stabs_data);
3079 gdb::unique_xmalloc_ptr<gdb_byte> data_holder;
3112 char *stabstr_name,
char *text_name)
3116 const char *
name = bfd_get_filename (sym_bfd);
3118 asection *stabstrsect;
3119 asection *text_sect;
3121 stabsect = bfd_get_section_by_name (sym_bfd, stab_name);
3122 stabstrsect = bfd_get_section_by_name (sym_bfd, stabstr_name);
3128 error (_(
"stabsect_build_psymtabs: Found stabs (%s), "
3129 "but not string section (%s)"),
3130 stab_name, stabstr_name);
3134 text_sect = bfd_get_section_by_name (sym_bfd, text_name);
3136 error (_(
"Can't find %s section in symbol file"), text_name);
3149 error (_(
"ridiculous string table size: %d bytes"),
3158 val = bfd_get_section_contents (sym_bfd,
void * xrealloc(void *ptr, size_t size)
void block_set_scope(struct block *block, const char *scope, struct obstack *obstack)
void set_last_source_start_addr(CORE_ADDR addr)
struct context_stack * push_context(int desc, CORE_ADDR valu)
struct block * finish_block(struct symbol *symbol, struct pending_block *old_blocks, const struct dynamic_prop *static_link, CORE_ADDR start, CORE_ADDR end)
struct compunit_symtab * start_compunit_symtab(struct objfile *objfile, const char *name, const char *comp_dir, CORE_ADDR start_addr, enum language language)
struct context_stack pop_context()
CORE_ADDR get_last_source_start_addr()
bool outermost_context_p()
struct compunit_symtab * end_compunit_symtab(CORE_ADDR end_addr, int section)
struct subfile * get_current_subfile()
void record_debugformat(const char *format)
void set_last_source_file(const char *name)
void record_line(struct subfile *subfile, int line, CORE_ADDR pc)
void patch_subfile_names(struct subfile *subfile, const char *name)
int get_context_stack_depth()
void start_subfile(const char *name)
const char * get_last_source_file()
struct pending ** get_local_symbols()
const char * pop_subfile()
gdb::unique_xmalloc_ptr< char > c_canonicalize_name(const char *name)
void record_with_info(const char *name, CORE_ADDR address, enum minimal_symbol_type ms_type, int section)
void discard_psymtab(struct partial_symtab *pst)
partial_symtab_range range()
struct partial_symtab ** allocate_dependencies(int number)
#define complaint(FMT,...)
int is_vtable_name(const char *name)
unsigned int cp_entire_prefix_len(const char *name)
gdb::unique_xmalloc_ptr< char > cp_canonicalize_string(const char *string)
static CORE_ADDR lowest_text_address
static void dbx_expand_psymtab(legacy_psymtab *, struct objfile *)
void free_header_files(void)
void init_header_files(void)
#define INTERNALIZE_SYMBOL(intern, extern, abfd)
static char * stringtab_global
static void add_new_header_file(const char *, int)
static unsigned char processing_acc_compilation
static void repeated_header_complaint(const char *arg1, int arg2)
static int has_line_numbers
static void lbrac_mismatch_complaint(int arg1)
static unsigned symbol_table_offset
void coffstab_build_psymtabs(struct objfile *objfile, CORE_ADDR textaddr, unsigned int textsize, const std::vector< asection * > &stabsects, file_ptr stabstroffset, unsigned int stabstrsize)
static unsigned int file_string_table_offset
static int symfile_relocatable
#define ELF_STABS_SYMBOL_SIZE
#define SYMBOL_TABLE_OFFSET
static const char * last_function_name
static unsigned int symbuf_left
static void add_this_object_header_file(int)
static const char * dbx_next_symbol_text(struct objfile *)
void elfstab_build_psymtabs(struct objfile *objfile, asection *stabsect, file_ptr stabstroffset, unsigned int stabstrsize)
static void read_ofile_symtab(struct objfile *, legacy_psymtab *)
static unsigned symbol_size
static void fill_symbuf(bfd *)
static enum language psymtab_language
static unsigned int next_file_string_table_offset
static void find_text_range(bfd *sym_bfd, struct objfile *objfile)
static legacy_psymtab * start_psymtab(psymtab_storage *, struct objfile *, const char *, CORE_ADDR, int)
static struct external_nlist symbuf[4096]
static void dbx_new_init(struct objfile *)
static unsigned string_table_offset
#define DBX_STRINGTAB_SIZE_SIZE
static void stabs_seek(int sym_offset)
const registry< objfile >::key< dbx_symfile_info > dbx_objfile_data_key
static void unknown_symtype_complaint(const char *arg1)
static const struct sym_fns aout_sym_fns
static const char * set_namestring(struct objfile *objfile, const struct internal_nlist *nlist)
static void add_old_header_file(const char *, int)
static unsigned int symbuf_read
void _initialize_dbxread()
static void record_minimal_symbol(minimal_symbol_reader &, const char *, CORE_ADDR, int, struct objfile *)
static void dbx_read_symtab(legacy_psymtab *self, struct objfile *objfile)
static void dbx_symfile_init(struct objfile *)
static struct objfile * dbxread_objfile
static std::vector< struct header_file_location > * bincl_list
static void dbx_symfile_finish(struct objfile *)
#define FILE_STRING_OFFSET(p)
static bfd_byte * stabs_data
static struct bound_minimal_symbol find_stab_function(const char *namestring, const char *filename, struct objfile *objfile)
static void read_dbx_symtab(minimal_symbol_reader &, psymtab_storage *, struct objfile *)
static const std::vector< asection * > * symbuf_sections
static void dbx_symfile_read(struct objfile *, symfile_add_flags)
void process_one_symbol(int type, int desc, CORE_ADDR valu, const char *name, const section_offsets §ion_offsets, struct objfile *objfile, enum language language)
static void function_outside_compilation_unit_complaint(const char *arg1)
static legacy_psymtab * find_corresponding_bincl_psymtab(const char *, int)
void stabsect_build_psymtabs(struct objfile *objfile, char *stab_name, char *stabstr_name, char *text_name)
static void cp_set_block_scope(const struct symbol *symbol, struct block *block, struct obstack *obstack)
#define COFF_STABS_SYMBOL_SIZE
#define STRING_TABLE_OFFSET
legacy_psymtab * dbx_end_psymtab(struct objfile *objfile, psymtab_storage *partial_symtabs, legacy_psymtab *pst, const char **include_list, int num_includes, int capping_symbol_offset, CORE_ADDR capping_text, legacy_psymtab **dependency_list, int number_dependencies, int textlow_not_set)
#define DBX_BSS_SECTION(o)
#define DBX_TEXT_SECTION(o)
#define DBX_SYMBOL_SIZE(o)
#define DBX_SYMTAB_OFFSET(o)
#define DBX_STRINGTAB_SIZE(o)
#define DBX_DATA_SECTION(o)
#define DBX_STAB_SECTION(o)
int gdbarch_sofun_address_maybe_missing(struct gdbarch *gdbarch)
CORE_ADDR gdbarch_addr_bits_remove(struct gdbarch *gdbarch, CORE_ADDR addr)
struct bound_minimal_symbol lookup_minimal_symbol(const char *name, const char *sfile, struct objfile *objf)
void set_objfile_main_name(struct objfile *objfile, const char *name, enum language lang)
const char * objfile_name(const struct objfile *objfile)
#define SECT_OFF_BSS(objfile)
#define SECT_OFF_DATA(objfile)
#define SECT_OFF_RODATA(objfile)
#define SECT_OFF_TEXT(objfile)
#define OBJSTAT(objfile, expr)
struct symbol * ref_search(int refnum)
int symbol_reference_defined(const char **string)
void common_block_end(struct objfile *objfile)
void stabsread_new_init(void)
struct symbol * define_symbol(CORE_ADDR valu, const char *string, int desc, int type, struct objfile *objfile)
int n_this_object_header_files
int * this_object_header_files
void scan_file_globals(struct objfile *objfile)
const char *(* next_symbol_text_func)(struct objfile *)
unsigned char processing_gcc_compilation
void stabsread_init(void)
int n_allocated_this_object_header_files
void common_block_start(const char *name, struct objfile *objfile)
void ref_add(int refnum, struct symbol *sym, const char *stabs, CORE_ADDR value)
#define N_HEADER_FILES(OBJFILE)
#define next_symbol_text(objfile)
#define N_ALLOCATED_HEADER_FILES(OBJFILE)
#define HEADER_FILES(OBJFILE)
struct minimal_symbol * minsym
struct pending_block * old_blocks
struct header_file * header_files
const char * demangled_name
enum language language() const
void expand_psymtab(struct objfile *objf) override
void * read_symtab_private
void(* legacy_expand_psymtab)(legacy_psymtab *, struct objfile *)
void(* legacy_read_symtab)(legacy_psymtab *, struct objfile *)
unsigned long size() const
CORE_ADDR value_raw_address() const
CORE_ADDR value_address(objfile *objfile) const
struct gdbarch * arch() const
struct objfile_per_bfd_storage * per_bfd
auto_obstack objfile_obstack
std::forward_list< quick_symbol_functions_up > qf
::section_offsets section_offsets
struct partial_symtab ** dependencies
CORE_ADDR raw_text_low() const
unsigned int text_high_valid
void set_text_low(CORE_ADDR addr)
int number_of_dependencies
CORE_ADDR text_high(struct objfile *objfile) const
void expand_dependencies(struct objfile *)
void add_psymbol(gdb::string_view name, bool copy_name, domain_enum domain, enum address_class theclass, short section, psymbol_placement where, CORE_ADDR coreaddr, enum language language, psymtab_storage *partial_symtabs, struct objfile *objfile)
CORE_ADDR raw_text_high() const
void set_text_high(CORE_ADDR addr)
CORE_ADDR text_low(struct objfile *objfile) const
const std::shared_ptr< psymtab_storage > & get_partial_symtabs() const
struct compunit_symtab * compunit_symtab
enum language pst_language
enum language deduce_language_from_filename(const char *filename)
bfd_byte * symfile_relocate_debug_section(struct objfile *objfile, asection *sectp, bfd_byte *buf)
void add_symtab_fns(enum bfd_flavour flavour, const struct sym_fns *sf)
void default_symfile_offsets(struct objfile *objfile, const section_addr_info &addrs)
symfile_segment_data_up default_symfile_segments(bfd *abfd)
bfd_byte * default_symfile_relocate(struct objfile *objfile, asection *sectp, bfd_byte *buf)
#define GCC_COMPILED_FLAG_SYMBOL
#define GCC2_COMPILED_FLAG_SYMBOL
std::vector< CORE_ADDR > section_offsets
void perror_with_name(const char *string)
void gdb_printf(struct ui_file *stream, const char *format,...)