24 #include <sys/types.h> 27 #ifdef HAVE_SYS_FILE_H 32 #include "coff/internal.h" 34 #include "coff/xcoff.h" 36 #include "coff/rs6000.h" 53 #include "aout/stab_gnu.h" 120 #define INITIAL_STABVECTOR_LENGTH 40 151 #define XCOFF_DATA(objfile) \ 152 ((struct coff_symfile_info *) objfile_data ((objfile), \ 153 xcoff_objfile_data_key)) 159 {
".dwabrev", NULL },
170 {
".dwrnges", NULL },
172 {
".dwpbtyp", NULL },
174 {
".dwframe", NULL },
186 _(
"line numbers off, `.bf' symbol not found"));
193 _(
"Mismatched .ef symbol ignored starting at symnum %d"), arg1);
200 _(
"Mismatched .eb symbol ignored starting at symnum %d"), arg1);
226 static void read_symbol (
struct internal_syment *,
int);
238 static void add_stab_to_list (
char *,
struct pending_stabs **);
241 static int compare_lte (
const void *,
const void *);
274 if (bfd_get_section_flags (abfd, sect) & SEC_CODE)
276 else if (bfd_get_section_flags (abfd, sect) & SEC_LOAD)
294 asection **bfd_sect,
int *secnum)
338 add_stab_to_list (
char *stabname,
struct pending_stabs **stabvector)
340 if (*stabvector == NULL)
345 (*stabvector)->count = 0;
348 else if ((*stabvector)->count >= (*stabvector)->length)
353 (*stabvector)->
length *
sizeof (
char *));
355 (*stabvector)->stab[(*stabvector)->count++] = stabname;
423 return lte1->
pc - lte2->
pc;
444 #define NUM_OF_FUNCTIONS 20 449 for (function_count = 0, ii = 0; ii < oldLineTb->
nitems; ++ii)
453 if (function_count >= fentry_size)
460 fentry[function_count].
line = ii;
461 fentry[function_count].
pc = oldLineTb->
item[ii].
pc;
466 if (ii + 1 < oldLineTb->
nitems 467 && oldLineTb->
item[ii].
pc != oldLineTb->
item[ii + 1].
pc)
472 if (function_count == 0)
477 else if (function_count > 1)
478 qsort (fentry, function_count,
493 newline < oldLineTb->
nitems && oldLineTb->
item[newline].
line; ++newline)
494 newLineTb->
item[newline] = oldLineTb->
item[newline];
498 for (ii = 0; ii < function_count; ++ii)
502 jj = fentry[ii].
line;
503 if (jj + 1 < oldLineTb->
nitems 504 && oldLineTb->
item[jj].
pc != oldLineTb->
item[jj + 1].
pc)
506 newLineTb->
item[newline] = oldLineTb->
item[jj];
511 for (jj = fentry[ii].line + 1;
514 newLineTb->
item[newline] = oldLineTb->
item[jj];
519 newLineTb->
nitems = oldLineTb->
nitems - function_count + extra_lines;
542 #define INITIAL_INCLUDE_TABLE_LENGTH 20 633 unsigned int main_source_baseline = 0;
640 goto return_after_cleanup;
642 memset (&main_subfile,
'\0',
sizeof (main_subfile));
649 &main_source_baseline);
657 main_source_baseline = 0;
668 start, 0, &main_source_baseline);
679 start, 0, &main_source_baseline);
702 if (
offset < max_offset + 1 - linesz)
705 &main_source_baseline);
778 if (fakename == NULL)
806 return_after_cleanup:
842 unsigned int curoffset;
845 struct internal_lineno int_lnno;
846 unsigned int limit_offset;
850 if (endoffset == 0 && startaddr == 0 && endaddr == 0)
852 curoffset = beginoffset;
857 if (endoffset >= limit_offset)
860 _(
"Bad line table offset in C_EINCL directive"));
863 limit_offset = endoffset;
869 linesz = coff_data (abfd)->local_linesz;
870 ext_lnno = alloca (linesz);
872 while (curoffset <= limit_offset)
874 bfd_seek (abfd, curoffset,
SEEK_SET);
875 bfd_bread (ext_lnno, linesz, abfd);
876 bfd_coff_swap_lineno_in (abfd, ext_lnno, &int_lnno);
879 addr = (int_lnno.l_lnno
880 ? int_lnno.l_addr.l_paddr
884 if (addr < startaddr || (endaddr && addr >= endaddr))
887 if (int_lnno.l_lnno == 0)
905 #define complete_symtab(name, start_addr) { \ 906 set_last_source_file (name); \ 907 last_source_start_addr = start_addr; \ 971 struct internal_syment
symbol;
987 else if (
symbol.n_sclass & 0x80)
1014 const char *debugfmt = bfd_xcoff_is_xcoff64 (abfd) ?
"XCOFF64" :
"XCOFF";
1016 struct internal_syment
symbol[1];
1017 union internal_auxent main_aux;
1022 int next_file_symnum = -1;
1023 unsigned int max_symnum;
1024 int just_started = 1;
1031 union internal_auxent fcn_aux_saved = main_aux;
1034 const char *filestring = pst->
filename;
1036 const char *last_csect_name;
1046 last_csect_name = 0;
1059 while (
symnum < max_symnum)
1086 if (cs->
c_name[E_SYMNMLEN - 1] !=
'\0')
1092 strncpy (p, cs->
c_name, E_SYMNMLEN);
1093 p[E_SYMNMLEN] =
'\0';
1098 else if (
symbol->n_sclass & 0x80)
1121 for (ii =
symbol->n_numaux; ii; --ii)
1123 raw_symbol += coff_data (abfd)->local_auxesz;
1155 #define CSECT(PP) ((PP)->x_csect) 1156 #define CSECT_LEN(PP) (CSECT(PP).x_scnlen.l) 1157 #define CSECT_ALIGN(PP) (SMTYP_ALIGN(CSECT(PP).x_smtyp)) 1158 #define CSECT_SMTYP(PP) (SMTYP_SMTYP(CSECT(PP).x_smtyp)) 1159 #define CSECT_SCLAS(PP) (CSECT(PP).x_smclas) 1183 bfd_coff_swap_aux_in (abfd, raw_auxptr, cs->
c_type, cs->
c_sclass,
1184 0, cs->
c_naux, &fcn_aux_saved);
1189 bfd_coff_swap_aux_in (abfd,
1224 if (last_csect_name)
1250 file_end_addr = file_start_addr +
CSECT_LEN (&main_aux);
1253 last_csect_name = cs->
c_name;
1324 next_file_symnum = cs->
c_value;
1346 bfd_coff_swap_aux_in (abfd, raw_auxptr, cs->
c_type, cs->
c_sclass,
1347 0, cs->
c_naux, &main_aux);
1357 last_csect_name = 0;
1362 file_start_addr = file_end_addr = 0;
1366 fcn_stab_saved = *cs;
1370 if (strcmp (cs->
c_name,
".bf") == 0)
1375 bfd_coff_swap_aux_in (abfd, raw_auxptr, cs->
c_type, cs->
c_sclass,
1376 0, cs->
c_naux, &main_aux);
1385 if (newobj->
name != NULL)
1388 else if (strcmp (cs->
c_name,
".ef") == 0)
1390 bfd_coff_swap_aux_in (abfd, raw_auxptr, cs->
c_type, cs->
c_sclass,
1391 0, cs->
c_naux, &main_aux);
1416 + fcn_aux_saved.x_sym.x_misc.x_fsize
1426 struct internal_syment
symbol;
1450 _(
"Unrecognized storage class %d."),
1481 if (strcmp (cs->
c_name,
".bb") == 0)
1489 else if (strcmp (cs->
c_name,
".eb") == 0)
1497 if (depth-- != newobj->
depth)
1539 #define SYMBOL_DUP(SYMBOL1, SYMBOL2) \ 1540 (SYMBOL2) = XOBNEW (&objfile->objfile_obstack, struct symbol); \ 1541 *(SYMBOL2) = *(SYMBOL1); 1544 #define SYMNAME_ALLOC(NAME, ALLOCED) \ 1545 ((ALLOCED) ? (NAME) : obstack_copy0 (&objfile->objfile_obstack, \ 1546 (NAME), strlen (NAME))) 1555 struct symbol *sym = &onesymbol;
1556 struct symbol *sym2 = NULL;
1599 if (cs->
c_sclass == C_EXT || C_WEAKEXT)
1618 add_stab_to_list (
name, &file_stabs);
1668 pp = strchr (
name,
':');
1697 static char buffer[BUFSIZ];
1699 if (aux_entry->x_file.x_n.x_zeroes == 0)
1701 + aux_entry->x_file.x_n.x_offset));
1704 strncpy (
buffer, aux_entry->x_file.x_fname, FILNMLEN);
1716 char *stbl = xcoff->
symtbl;
1718 if (symno < 0 || symno >= nsyms)
1735 struct internal_syment
symbol[1];
1749 int xcoff64 = bfd_xcoff_is_xcoff64 (
objfile->
obfd);
1753 char *stbl = info->
symtbl;
1756 struct internal_syment
symbol[1];
1757 union internal_auxent main_aux[1];
1781 while (symno < nsyms)
1785 if (
symbol->n_sclass == C_FCN)
1789 if (strcmp (
name,
".bf") == 0)
1792 symno +=
symbol->n_numaux + 1;
1803 0,
symbol->n_numaux, main_aux);
1805 return main_aux->x_sym.x_misc.x_lnsz.x_lnno;
1821 count = asect->lineno_count;
1823 if (strcmp (asect->name,
".text") != 0 || count == 0)
1826 size = count * coff_data (abfd)->local_linesz;
1828 offset = asect->line_filepos;
1849 (
gdb_stderr,
"Psymtab for %s already read in. Shouldn't happen.\n",
1894 (
gdb_stderr,
"Psymtab for %s already read in. Shouldn't happen.\n",
1899 if (((
struct symloc *) self->read_symtab_private)->numsyms != 0
1900 || self->number_of_dependencies)
1977 unsigned char lengthbuf[4];
1984 error (
_(
"cannot seek to string table in %s: %s"),
1985 bfd_get_filename (abfd), bfd_errmsg (bfd_get_error ()));
1987 val = bfd_bread ((
char *) lengthbuf,
sizeof lengthbuf, abfd);
1988 length = bfd_h_get_32 (abfd, lengthbuf);
1993 if (val !=
sizeof lengthbuf || length <
sizeof lengthbuf)
2004 memcpy (
strtbl, lengthbuf,
sizeof lengthbuf);
2005 if (length ==
sizeof lengthbuf)
2008 val = bfd_bread (
strtbl +
sizeof lengthbuf, length -
sizeof lengthbuf, abfd);
2010 if (val != length -
sizeof lengthbuf)
2011 error (
_(
"cannot read string table from %s: %s"),
2012 bfd_get_filename (abfd), bfd_errmsg (bfd_get_error ()));
2013 if (
strtbl[length - 1] !=
'\0')
2014 error (
_(
"bad symbol file: string table " 2015 "does not end with null character"));
2034 const char *
filename,
int first_symnum,
2035 std::vector<partial_symbol *> &global_psymbols,
2036 std::vector<partial_symbol *> &static_psymbols)
2043 global_psymbols, static_psymbols);
2066 const char **include_list,
int num_includes,
2067 int capping_symbol_number,
2069 int number_dependencies,
int textlow_not_set)
2073 if (capping_symbol_number != -1)
2075 capping_symbol_number
2084 if (number_dependencies)
2088 number_dependencies);
2095 for (i = 0; i < num_includes; i++)
2124 if (num_includes == 0
2125 && number_dependencies == 0
2148 const char **
name,
char **raw,
unsigned int *symnump,
2156 if (
symbol->n_name[E_SYMNMLEN - 1] !=
'\0')
2164 strncpy (p,
symbol->n_name, E_SYMNMLEN);
2165 p[E_SYMNMLEN] =
'\0';
2171 *
name = ((
struct external_syment *) *raw)->e.e_name;
2173 else if (
symbol->n_sclass & 0x80)
2183 if (
symbol->n_numaux > 0)
2188 *symnump +=
symbol->n_numaux;
2197 _(
"function `%s' appears to be defined " 2198 "outside of all compilation units"),
2208 const char *filestring = NULL;
2210 const char *namestring;
2219 const char **psymtab_include_list;
2220 int includes_allocated;
2225 int dependencies_used, dependencies_allocated;
2228 struct internal_syment
symbol;
2229 union internal_auxent main_aux[5];
2230 unsigned int ssymnum;
2232 const char *last_csect_name = NULL;
2234 int last_csect_sec = 0;
2235 int misc_func_recorded = 0;
2236 int textlow_not_set = 1;
2240 includes_allocated = 30;
2242 psymtab_include_list = (
const char **) alloca (includes_allocated *
2243 sizeof (
const char *));
2245 dependencies_allocated = 30;
2246 dependencies_used = 0;
2259 while (ssymnum < nsyms)
2265 bfd_coff_swap_sym_in (abfd, sraw_symbol, &
symbol);
2266 sclass =
symbol.n_sclass;
2275 union internal_auxent csect_aux;
2276 unsigned int symnum_before = ssymnum;
2282 bfd_coff_swap_aux_in
2292 csect_aux = main_aux[0];
2295 if (namestring[0] ==
'$' 2296 || (namestring[0] ==
'.' && namestring[1] ==
'$'))
2299 switch (csect_aux.x_csect.x_smtyp & 0x7)
2302 switch (csect_aux.x_csect.x_smclas)
2305 if (last_csect_name)
2312 if (!misc_func_recorded)
2315 (reader, last_csect_name, last_csect_val,
2317 misc_func_recorded = 1;
2326 (
objfile, pst, psymtab_include_list,
2327 includes_used, symnum_before, dependency_list,
2328 dependencies_used, textlow_not_set);
2330 dependencies_used = 0;
2344 if (namestring && (namestring[0] ==
'.' 2345 || namestring[0] ==
'@'))
2347 last_csect_name = namestring;
2348 last_csect_val =
symbol.n_value;
2349 last_csect_sec =
symbol.n_scnum;
2354 symbol.n_value + csect_aux.x_csect.x_scnlen.l;
2361 misc_func_recorded = 0;
2368 if (*namestring !=
'.')
2370 (reader, namestring,
symbol.n_value,
2377 warning (
_(
"More than one XMC_TC0 symbol found."));
2378 toc_offset =
symbol.n_value;
2384 toc_offset -= bfd_section_vma (
objfile->
obfd, bfd_sect);
2398 switch (csect_aux.x_csect.x_smclas)
2405 main_aux[0].x_sym.x_fcnary.x_fcn.x_lnnoptr;
2408 (reader, namestring,
symbol.n_value,
2411 misc_func_recorded = 1;
2423 (reader, namestring,
symbol.n_value,
2425 misc_func_recorded = 1;
2443 if (*namestring !=
'.')
2445 (reader, namestring,
symbol.n_value,
2453 switch (csect_aux.x_csect.x_smclas)
2459 if (*namestring !=
'.')
2461 (reader, namestring,
symbol.n_value,
2475 unsigned int symnum_before;
2477 symnum_before = ssymnum;
2483 if (last_csect_name && !misc_func_recorded)
2491 misc_func_recorded = 1;
2497 includes_used, symnum_before,
2498 dependency_list, dependencies_used,
2501 dependencies_used = 0;
2510 if (!strcmp (namestring,
".file") &&
symbol.n_numaux > 0)
2515 filestring = namestring;
2522 last_csect_name = NULL;
2529 _(
"Storage class %d not recognized during scan"),
2579 int naux1 =
symbol.n_numaux + 1;
2582 sraw_symbol += bfd_coff_symesz (abfd) * naux1;
2615 if (pst && strcmp (namestring, pst->
filename) == 0)
2621 for (i = 0; i < includes_used; i++)
2622 if (strcmp (namestring, psymtab_include_list[i]) == 0)
2630 psymtab_include_list[includes_used++] = namestring;
2631 if (includes_used >= includes_allocated)
2633 const char **orig = psymtab_include_list;
2635 psymtab_include_list = (
const char **)
2636 alloca ((includes_allocated *= 2) *
2637 sizeof (
const char *));
2638 memcpy (psymtab_include_list, orig,
2639 includes_used *
sizeof (
const char *));
2659 p = strchr (namestring,
':');
2706 if (p >= namestring + 2
2707 || (p == namestring + 1
2708 && namestring[0] !=
' '))
2727 if (p != namestring)
2752 while ((*p >=
'0' && *p <=
'9')
2753 || *p ==
'(' || *p ==
',' || *p ==
')' 2776 while (*p && *p !=
';' && *p !=
',')
2782 if (*p ==
'\\' || (*p ==
'?' && p[1] ==
'\0'))
2787 for (q = p; *q && *q !=
':'; q++)
2798 while (*p && *p !=
',')
2818 int name_len = p - namestring;
2821 memcpy (
name, namestring, name_len);
2822 name[name_len] =
'\0';
2841 int name_len = p - namestring;
2844 memcpy (
name, namestring, name_len);
2845 name[name_len] =
'\0';
2906 _(
"unknown symbol descriptor `%c'"), p[1]);
2919 ssymnum, dependency_list,
2920 dependencies_used, textlow_not_set);
2956 file_ptr symtab_offset;
2957 file_ptr stringtab_offset;
2966 num_symbols = bfd_get_symcount (abfd);
2967 symtab_offset = obj_sym_filepos (abfd);
2968 stringtab_offset = symtab_offset +
2969 num_symbols * coff_data (abfd)->local_symesz;
2975 if (num_symbols > 0)
2984 struct bfd_section *secp;
2985 bfd_size_type length;
2986 bfd_byte *debugsec = NULL;
2988 secp = bfd_get_section_by_name (abfd,
".debug");
2991 length = bfd_section_size (abfd, secp);
2998 if (!bfd_get_full_section_contents (abfd, secp, &debugsec))
3000 error (
_(
"Error reading .debug section of `%s': %s"),
3001 name, bfd_errmsg (bfd_get_error ()));
3005 info->
debugsec = (
char *) debugsec;
3011 val = bfd_seek (abfd, symtab_offset,
SEEK_SET);
3013 error (
_(
"Error reading symbols from %s: %s"),
3014 name, bfd_errmsg (bfd_get_error ()));
3015 size = coff_data (abfd)->local_symesz * num_symbols;
3059 const char *first_section_name;
3077 && strcmp (first_section_name,
".text") != 0)
3081 && strcmp (first_section_name,
".data") != 0)
3085 && strcmp (first_section_name,
".bss") != 0)
3089 && strcmp (first_section_name,
".rodata") != 0)
3125 asection *sect = bfd_get_section_by_name (abfd,
".ldinfo");
3133 for (
offset = 0;
offset < bfd_get_section_size (sect);)
3139 if (!bfd_get_section_contents (abfd, sect, buf,
offset, 4))
3141 next = bfd_get_32 (abfd, buf);
3149 return n_entries - 1;
3158 asection *sect = bfd_get_section_by_name (abfd,
".loader");
3171 if (!bfd_get_section_contents (abfd, sect, buf, 16, 4))
3173 l_nimpid = bfd_get_32 (abfd, buf);
3178 return l_nimpid - 1;
void discard_psymtab(struct objfile *, struct partial_symtab *)
void stabsread_new_init(void)
int dwarf2_has_info(struct objfile *objfile, const struct dwarf2_debug_sections *names)
void common_block_end(struct objfile *objfile)
#define SECT_OFF_TEXT(objfile)
static const struct dwarf2_debug_sections dwarf2_xcoff_names
struct block * finish_block(struct symbol *symbol, struct pending **listhead, struct pending_block *old_blocks, const struct dynamic_prop *static_link, CORE_ADDR start, CORE_ADDR end)
static void allocate_include_entry(void)
void dwarf2_build_frame_info(struct objfile *objfile)
struct linetable_entry item[1]
void _initialize_xcoffread(void)
static int compare_lte(const void *, const void *)
int gdb_bfd_section_index(bfd *abfd, asection *section)
void add_symbol_to_list(struct symbol *symbol, struct pending **listhead)
struct _inclTable InclTable
struct bfd_section * the_bfd_section
void warning(const char *fmt,...)
static int secnum_to_section(int, struct objfile *)
void set_last_source_file(const char *name)
#define SYMBOL_SET_LINKAGE_NAME(symbol, linkage_name)
const struct objfile_type * objfile_type(struct objfile *objfile)
struct compunit_symtab * end_symtab(CORE_ADDR end_addr, int section)
void * memset(T *s, int c, size_t n)=delete
void add_symtab_fns(enum bfd_flavour flavour, const struct sym_fns *sf)
static void find_linenos(struct bfd *abfd, struct bfd_section *asect, void *vpinfo)
EXTERN struct pending * file_symbols
static int xcoff_get_core_n_import_files(bfd *abfd)
static void record_include_begin(struct coff_symbol *)
static struct symbol * process_xcoff_symbol(struct coff_symbol *, struct objfile *)
static struct partial_symtab * xcoff_start_psymtab(struct objfile *objfile, const char *filename, int first_symnum, std::vector< partial_symbol *> &global_psymbols, std::vector< partial_symbol *> &static_psymbols)
struct symfile_segment_data * default_symfile_segments(bfd *abfd)
static void function_outside_compilation_unit_complaint(const char *arg1)
void initialize_objfile_symbol(struct symbol *sym)
void dwarf2_build_psymtabs(struct objfile *objfile)
static InclTable * inclTable
struct type * nodebug_data_symbol
static int static_block_section
static int static_block_base
EXTERN int context_stack_depth
static char * coff_getfilename(union internal_auxent *, struct objfile *)
CORE_ADDR xcoff_get_toc_offset(struct objfile *objfile)
void add_psymbol_to_list(const char *, int, int, domain_enum, enum address_class, std::vector< partial_symbol *> *, CORE_ADDR, enum language, struct objfile *)
static void xcoff_new_init(struct objfile *)
static void xcoff_initial_scan(struct objfile *, symfile_add_flags)
void free_pending_blocks(void)
static CORE_ADDR read_symbol_nvalue(int)
#define INITIAL_STABVECTOR_LENGTH
void printf_filtered(const char *format,...)
EXTERN struct subfile * current_subfile
static void find_targ_sec(bfd *, asection *, void *)
void end_psymtab_common(struct objfile *, struct partial_symtab *)
static void xcoff_symfile_offsets(struct objfile *objfile, const struct section_addr_info *addrs)
static void eb_complaint(int arg1)
static struct linetable * arrange_linetable(struct linetable *)
bfd_byte * default_symfile_relocate(struct objfile *objfile, asection *sectp, bfd_byte *buf)
EXTERN unsigned int symnum
#define SYMBOL_ACLASS_INDEX(symbol)
static struct objfile * this_symtab_objfile
#define SYMBOL_VALUE_ADDRESS(symbol)
static enum language psymtab_language
void dwarf2_free_objfile(struct objfile *objfile)
static const struct sym_fns xcoff_sym_fns
CORE_ADDR gdbarch_addr_bits_remove(struct gdbarch *gdbarch, CORE_ADDR addr)
#define SYMBOL_DOMAIN(symbol)
EXTERN struct pending * global_symbols
void common_block_start(const char *name, struct objfile *objfile)
struct pending_block * old_blocks
void scan_file_globals(struct objfile *objfile)
static const struct objfile_data * xcoff_objfile_data_key
#define XCOFF_DATA(objfile)
void init_psymbol_list(struct objfile *, int)
void fprintf_unfiltered(struct ui_file *stream, const char *format,...)
struct partial_symtab * start_psymtab_common(struct objfile *, const char *, CORE_ADDR, std::vector< partial_symbol *> &, std::vector< partial_symbol *> &)
static void record_include_end(struct coff_symbol *)
static void swap_sym(struct internal_syment *symbol, union internal_auxent *aux, const char **name, char **raw, unsigned int *symnump, struct objfile *objfile)
void fputs_filtered(const char *linebuffer, struct ui_file *stream)
static void read_symbol(struct internal_syment *, int)
#define SECT_OFF_DATA(objfile)
void buildsym_new_init(void)
#define SYMBOL_DUP(SYMBOL1, SYMBOL2)
#define ANOFFSET(secoff, whichone)
struct gdbarch * get_objfile_arch(const struct objfile *objfile)
EXTERN struct pending * local_symbols
struct obj_section * sections
static void xcoff_secnum_to_sections(int n_scnum, struct objfile *objfile, asection **bfd_sect, int *secnum)
static CORE_ADDR cur_src_end_addr
#define complete_symtab(name, start_addr)
#define next_symbol_text(objfile)
static void scan_xcoff_symtab(minimal_symbol_reader &, struct objfile *)
struct context_stack * pop_context(void)
#define SYMNAME_ALLOC(NAME, ALLOCED)
const char * get_last_source_file(void)
#define complaint(COMPLAINTS, FMT,...)
static int startswith(const char *string, const char *pattern)
static void xcoff_symfile_finish(struct objfile *)
static void xcoff_free_info(struct objfile *objfile, void *arg)
int number_of_dependencies
const char * objfile_name(const struct objfile *objfile)
#define XRESIZEVEC(T, P, N)
void * read_symtab_private
static int symname_alloced
static void init_stringtab(bfd *, file_ptr, struct objfile *)
std::vector< partial_symbol * > static_psymbols
static void ef_complaint(int arg1)
struct partial_symtab * allocate_psymtab(const char *, struct objfile *) ATTRIBUTE_NONNULL(1)
static unsigned int first_fun_line_offset
file_ptr max_lineno_offset
void wrap_here(const char *indent)
static void xcoff_symfile_init(struct objfile *)
EXTERN struct pending_stabs * global_stabs
PTR xrealloc(PTR ptr, size_t size)
struct symbol * define_symbol(CORE_ADDR valu, const char *string, int desc, int type, struct objfile *objfile)
static struct coff_symbol fcn_cs_saved
static void enter_line_range(struct subfile *, unsigned, unsigned, CORE_ADDR, CORE_ADDR, unsigned *)
static void xcoff_read_symtab(struct partial_symtab *self, struct objfile *objfile)
void void void void void void void void void perror_with_name(const char *string) ATTRIBUTE_NORETURN
static void process_linenos(CORE_ADDR, CORE_ADDR)
static void bf_notfound_complaint(void)
static unsigned local_symesz
static struct partial_symtab * xcoff_end_psymtab(struct objfile *objfile, struct partial_symtab *pst, const char **include_list, int num_includes, int capping_symbol_number, struct partial_symtab **dependency_list, int number_dependencies, int textlow_not_set)
enum language deduce_language_from_filename(const char *filename)
struct minimal_symbol * record_with_info(const char *name, CORE_ADDR address, enum minimal_symbol_type ms_type, int section)
std::vector< partial_symbol * > global_psymbols
int xcoff_get_n_import_files(bfd *abfd)
struct partial_symtab ** dependencies
void record_debugformat(const char *format)
struct complaints * symfile_complaints
const char * gdbarch_static_transform_name(struct gdbarch *gdbarch, const char *name)
file_ptr min_lineno_offset
const struct quick_symbol_functions psym_functions
#define INITIAL_INCLUDE_TABLE_LENGTH
record_line_ftype record_line
EXTERN CORE_ADDR last_source_start_addr
void default_symfile_offsets(struct objfile *objfile, const struct section_addr_info *addrs)
static struct partial_symtab * this_symtab_psymtab
void start_subfile(const char *name)
static int read_symbol_lineno(int)
struct type * nodebug_text_symbol
void(* read_symtab)(struct partial_symtab *, struct objfile *)
static const char * xcoff_next_symbol_text(struct objfile *)
static CORE_ADDR first_object_file_end
#define SYMBOL_TYPE(symbol)
struct context_stack * push_context(int desc, CORE_ADDR valu)
static asection * secnum_to_bfd_section(int, struct objfile *)
void stabsread_init(void)
#define SYMBOL_SECTION(symbol)
struct compunit_symtab * compunit_symtab
struct section_offsets * section_offsets
void gdb_flush(struct ui_file *file)
static void record_minimal_symbol(minimal_symbol_reader &reader, const char *name, CORE_ADDR address, enum minimal_symbol_type ms_type, int n_scnum, struct objfile *objfile)
int gdbarch_static_transform_name_p(struct gdbarch *gdbarch)
struct compunit_symtab * start_symtab(struct objfile *objfile, const char *name, const char *comp_dir, CORE_ADDR start_addr, enum language language)
EXTERN int within_function
static void read_xcoff_symtab(struct objfile *, struct partial_symtab *)
static void aix_process_linenos(struct objfile *objfile)
struct linetable * line_vector
static void xcoff_psymtab_to_symtab_1(struct objfile *objfile, struct partial_symtab *pst)
void error(const char *fmt,...)
EXTERN const char *(* next_symbol_text_func)(struct objfile *)