33#include "coff/internal.h"
35#include "coff/xcoff.h"
37#include "coff/rs6000.h"
56#include "aout/stab_gnu.h"
119#define INITIAL_STABVECTOR_LENGTH 40
154#define XCOFF_DATA(objfile) \
155 xcoff_objfile_data_key.get (objfile)
161 {
".dwabrev", NULL },
173 {
".dwrnges", NULL },
175 {
".dwpbtyp", NULL },
177 {
".dwframe", NULL },
188 complaint (_(
"line numbers off, `.bf' symbol not found"));
194 complaint (_(
"Mismatched .ef symbol ignored starting at symnum %d"), arg1);
200 complaint (_(
"Mismatched .eb symbol ignored starting at symnum %d"), arg1);
215 CORE_ADDR, CORE_ADDR,
unsigned *);
227static void read_symbol (
struct internal_syment *,
int);
239static void add_stab_to_list (
char *,
struct pending_stabs **);
269 if (sect->target_index == args->targ_index)
272 if (bfd_section_flags (sect) & SEC_CODE)
274 else if (bfd_section_flags (sect) & SEC_LOAD)
278 *args->bfd_sect = sect;
292 asection **bfd_sect,
int *secnum)
296 args.targ_index = n_scnum;
297 args.resultp = secnum;
336add_stab_to_list (
char *stabname,
struct pending_stabs **stabvector)
338 if (*stabvector == NULL)
343 (*stabvector)->count = 0;
346 else if ((*stabvector)->count >= (*stabvector)->length)
351 (*stabvector)->
length *
sizeof (
char *));
353 (*stabvector)->stab[(*stabvector)->count++] = stabname;
422 std::vector<linetable_entry> fentries;
424 for (
int ii = 0; ii < old_linetable.size (); ++ii)
426 if (old_linetable[ii].is_stmt == 0)
429 if (old_linetable[ii].line == 0)
432 fentries.emplace_back ();
436 e.
pc = old_linetable[ii].pc;
440 if (fentries.empty ())
443 std::sort (fentries.begin (), fentries.end (),
445 { return lte1.pc < lte2.pc; });
453 for (
int i = 0; i < old_linetable.size () && old_linetable[i].line != 0; ++i)
462 if (jj + 1 < old_linetable.size ()
463 && old_linetable[jj].pc != old_linetable[jj + 1].pc)
469 for (jj = entry.line + 1;
470 jj < old_linetable.size () && old_linetable[jj].line != 0;
498#define INITIAL_INCLUDE_TABLE_LENGTH 20
534 complaint (_(
"Mismatched C_BINCL/C_EINCL pair"));
589 unsigned int main_source_baseline = 0;
596 goto return_after_cleanup;
603 &main_source_baseline);
611 main_source_baseline = 0;
613 for (
int ii = 0; ii <
inclIndx; ++ii)
619 (&main_subfile, offset,
inclTable[ii].begin - linesz,
620 start, 0, &main_source_baseline);
631 start, 0, &main_source_baseline);
652 if (offset < max_offset + 1 - linesz)
655 &main_source_baseline);
669 for (
int ii = 0; ii <
inclIndx; ++ii)
703 if (fakename == NULL)
748 CORE_ADDR endaddr,
unsigned *firstLine)
752 unsigned int curoffset;
755 struct internal_lineno int_lnno;
756 unsigned int limit_offset;
760 if (endoffset == 0 && startaddr == 0 && endaddr == 0)
762 curoffset = beginoffset;
767 if (endoffset >= limit_offset)
769 complaint (_(
"Bad line table offset in C_EINCL directive"));
772 limit_offset = endoffset;
778 linesz = coff_data (abfd)->local_linesz;
779 ext_lnno = alloca (linesz);
781 while (curoffset <= limit_offset)
783 bfd_seek (abfd, curoffset,
SEEK_SET);
784 bfd_bread (ext_lnno, linesz, abfd);
785 bfd_coff_swap_lineno_in (abfd, ext_lnno, &int_lnno);
788 addr = (int_lnno.l_lnno
789 ? int_lnno.l_addr.l_paddr
793 if (addr < startaddr || (endaddr && addr >= endaddr))
796 if (int_lnno.l_lnno == 0)
814#define complete_symtab(name, start_addr) { \
815 set_last_source_file (name); \
816 set_last_source_start_addr (start_addr); \
844 const char *
name, CORE_ADDR address,
880 struct internal_syment
symbol;
890 complaint (_(
"Unexpected symbol continuation"));
896 else if (
symbol.n_sclass & 0x80)
904 complaint (_(
"Unexpected symbol continuation"));
923 const char *debugfmt = bfd_xcoff_is_xcoff64 (abfd) ?
"XCOFF64" :
"XCOFF";
925 struct internal_syment
symbol[1];
926 union internal_auxent main_aux;
928 CORE_ADDR file_start_addr = 0;
929 CORE_ADDR file_end_addr = 0;
931 int next_file_symnum = -1;
932 unsigned int max_symnum;
933 int just_started = 1;
935 CORE_ADDR fcn_start_addr = 0;
941 union internal_auxent fcn_aux_saved {};
944 const char *filestring = pst->
filename;
946 const char *last_csect_name;
961 pst_symtab_language);
970 while (
symnum < max_symnum)
997 if (cs->
c_name[E_SYMNMLEN - 1] !=
'\0')
1003 strncpy (p, cs->
c_name, E_SYMNMLEN);
1004 p[E_SYMNMLEN] =
'\0';
1009 else if (
symbol->n_sclass & 0x80)
1032 for (ii =
symbol->n_numaux; ii; --ii)
1034 raw_symbol += coff_data (abfd)->local_auxesz;
1055 0, pst_symtab_language);
1066#define CSECT(PP) ((PP)->x_csect)
1067#define CSECT_LEN(PP) (CSECT(PP).x_scnlen.l)
1068#define CSECT_ALIGN(PP) (SMTYP_ALIGN(CSECT(PP).x_smtyp))
1069#define CSECT_SMTYP(PP) (SMTYP_SMTYP(CSECT(PP).x_smtyp))
1070#define CSECT_SCLAS(PP) (CSECT(PP).x_smclas)
1094 bfd_coff_swap_aux_in (abfd, raw_auxptr, cs->
c_type, cs->
c_sclass,
1095 0, cs->
c_naux, &fcn_aux_saved);
1100 bfd_coff_swap_aux_in (abfd,
1135 if (last_csect_name)
1146 0, pst_symtab_language);
1161 file_end_addr = file_start_addr +
CSECT_LEN (&main_aux);
1164 last_csect_name = cs->
c_name;
1235 next_file_symnum = cs->
c_value;
1257 bfd_coff_swap_aux_in (abfd, raw_auxptr, cs->
c_type, cs->
c_sclass,
1258 0, cs->
c_naux, &main_aux);
1266 pst_symtab_language);
1268 last_csect_name = 0;
1273 file_start_addr = file_end_addr = 0;
1277 fcn_stab_saved = *cs;
1281 if (strcmp (cs->
c_name,
".bf") == 0)
1285 bfd_coff_swap_aux_in (abfd, raw_auxptr, cs->
c_type, cs->
c_sclass,
1286 0, cs->
c_naux, &main_aux);
1295 if (newobj->
name != NULL)
1298 else if (strcmp (cs->
c_name,
".ef") == 0)
1300 bfd_coff_swap_aux_in (abfd, raw_auxptr, cs->
c_type, cs->
c_sclass,
1301 0, cs->
c_naux, &main_aux);
1326 + fcn_aux_saved.x_sym.x_misc.x_fsize
1335 struct internal_syment static_symbol;
1358 complaint (_(
"Unrecognized storage class %d."),
1389 if (strcmp (cs->
c_name,
".bb") == 0)
1396 else if (strcmp (cs->
c_name,
".eb") == 0)
1445#define SYMNAME_ALLOC(NAME, ALLOCED) \
1446 ((ALLOCED) ? (NAME) : obstack_strdup (&objfile->objfile_obstack, \
1456 struct symbol *sym = &onesymbol;
1457 struct symbol *sym2 = NULL;
1497 if (cs->
c_sclass == C_EXT || C_WEAKEXT)
1516 add_stab_to_list (
name, &file_stabs);
1533 complaint (_(
"Unexpected storage class: %d"),
1566 pp = strchr (
name,
':');
1595 static char buffer[BUFSIZ];
1597 if (aux_entry->x_file.x_n.x_n.x_zeroes == 0)
1599 + aux_entry->x_file.x_n.x_n.x_offset));
1602 strncpy (buffer, aux_entry->x_file.x_n.x_fname, FILNMLEN);
1603 buffer[FILNMLEN] =
'\0';
1614 char *stbl = xcoff->
symtbl;
1616 if (symno < 0 || symno >= nsyms)
1633 struct internal_syment
symbol[1];
1647 int xcoff64 = bfd_xcoff_is_xcoff64 (
objfile->
obfd);
1650 int nsyms = info->symtbl_num_syms;
1651 char *stbl = info->symtbl;
1652 char *
strtbl = info->strtbl;
1654 struct internal_syment
symbol[1];
1655 union internal_auxent main_aux[1];
1679 while (symno < nsyms)
1683 if (
symbol->n_sclass == C_FCN)
1687 if (strcmp (
name,
".bf") == 0)
1690 symno +=
symbol->n_numaux + 1;
1701 0,
symbol->n_numaux, main_aux);
1703 return main_aux->x_sym.x_misc.x_lnsz.x_lnno;
1717 file_ptr offset, maxoff;
1719 count = asect->lineno_count;
1721 if (strcmp (asect->name,
".text") != 0 || count == 0)
1724 size = count * coff_data (abfd)->local_linesz;
1726 offset = asect->line_filepos;
1727 maxoff = offset +
size;
1730 info->min_lineno_offset = offset;
1732 if (maxoff > info->max_lineno_offset)
1733 info->max_lineno_offset = maxoff;
1739 gdb_assert (!pst->
readin);
1762 gdb_assert (!self->
readin);
1824 unsigned char lengthbuf[4];
1830 if (bfd_seek (abfd, offset,
SEEK_SET) < 0)
1831 error (_(
"cannot seek to string table in %s: %s"),
1832 bfd_get_filename (abfd), bfd_errmsg (bfd_get_error ()));
1834 val = bfd_bread ((
char *) lengthbuf,
sizeof lengthbuf, abfd);
1835 length = bfd_h_get_32 (abfd, lengthbuf);
1840 if (val !=
sizeof lengthbuf || length <
sizeof lengthbuf)
1851 memcpy (
strtbl, lengthbuf,
sizeof lengthbuf);
1852 if (length ==
sizeof lengthbuf)
1855 val = bfd_bread (
strtbl +
sizeof lengthbuf, length -
sizeof lengthbuf, abfd);
1857 if (val != length -
sizeof lengthbuf)
1858 error (_(
"cannot read string table from %s: %s"),
1859 bfd_get_filename (abfd), bfd_errmsg (bfd_get_error ()));
1860 if (
strtbl[length - 1] !=
'\0')
1861 error (_(
"bad symbol file: string table "
1862 "does not end with null character"));
1882 const char *filename,
int first_symnum)
1911 const char **include_list,
int num_includes,
1912 int capping_symbol_number,
1914 int number_dependencies,
int textlow_not_set)
1918 if (capping_symbol_number != -1)
1920 capping_symbol_number
1929 if (number_dependencies)
1939 for (i = 0; i < num_includes; i++)
1959 if (num_includes == 0
1960 && number_dependencies == 0
1981 const char **
name,
char **raw,
unsigned int *symnump,
1989 if (
symbol->n_name[E_SYMNMLEN - 1] !=
'\0')
1997 strncpy (p,
symbol->n_name, E_SYMNMLEN);
1998 p[E_SYMNMLEN] =
'\0';
2004 *
name = ((
struct external_syment *) *raw)->e.e_name;
2006 else if (
symbol->n_sclass & 0x80)
2016 if (
symbol->n_numaux > 0)
2021 *symnump +=
symbol->n_numaux;
2029 complaint (_(
"function `%s' appears to be defined "
2030 "outside of all compilation units"),
2039 CORE_ADDR toc_offset = 0;
2040 const char *filestring = NULL;
2042 const char *namestring;
2051 const char **psymtab_include_list;
2052 int includes_allocated;
2057 int dependencies_used, dependencies_allocated;
2060 struct internal_syment
symbol;
2061 union internal_auxent main_aux[5];
2062 unsigned int ssymnum;
2064 const char *last_csect_name = NULL;
2065 CORE_ADDR last_csect_val = 0;
2066 int last_csect_sec = 0;
2067 int misc_func_recorded = 0;
2068 int textlow_not_set = 1;
2072 includes_allocated = 30;
2074 psymtab_include_list = (
const char **) alloca (includes_allocated *
2075 sizeof (
const char *));
2077 dependencies_allocated = 30;
2078 dependencies_used = 0;
2091 while (ssymnum < nsyms)
2097 bfd_coff_swap_sym_in (abfd, sraw_symbol, &
symbol);
2098 sclass =
symbol.n_sclass;
2107 union internal_auxent csect_aux;
2108 unsigned int symnum_before = ssymnum;
2114 bfd_coff_swap_aux_in
2124 csect_aux = main_aux[0];
2127 if (namestring[0] ==
'$'
2128 || (namestring[0] ==
'.' && namestring[1] ==
'$'))
2131 switch (csect_aux.x_csect.x_smtyp & 0x7)
2134 switch (csect_aux.x_csect.x_smclas)
2137 if (last_csect_name)
2144 if (!misc_func_recorded)
2147 (reader, last_csect_name, last_csect_val,
2149 misc_func_recorded = 1;
2158 (
objfile, partial_symtabs, pst, psymtab_include_list,
2159 includes_used, symnum_before, dependency_list,
2160 dependencies_used, textlow_not_set);
2162 dependencies_used = 0;
2174 if (namestring && (namestring[0] ==
'.'
2175 || namestring[0] ==
'@'))
2177 last_csect_name = namestring;
2178 last_csect_val =
symbol.n_value;
2179 last_csect_sec =
symbol.n_scnum;
2184 symbol.n_value + csect_aux.x_csect.x_scnlen.l;
2192 misc_func_recorded = 0;
2199 if (*namestring !=
'.')
2201 (reader, namestring,
symbol.n_value,
2208 warning (_(
"More than one XMC_TC0 symbol found."));
2209 toc_offset =
symbol.n_value;
2215 toc_offset -= bfd_section_vma (bfd_sect);
2229 switch (csect_aux.x_csect.x_smclas)
2236 main_aux[0].x_sym.x_fcnary.x_fcn.x_lnnoptr;
2239 (reader, namestring,
symbol.n_value,
2242 misc_func_recorded = 1;
2254 (reader, namestring,
symbol.n_value,
2256 misc_func_recorded = 1;
2274 if (*namestring !=
'.')
2276 (reader, namestring,
symbol.n_value,
2284 switch (csect_aux.x_csect.x_smclas)
2290 if (*namestring !=
'.')
2292 (reader, namestring,
symbol.n_value,
2306 unsigned int symnum_before;
2308 symnum_before = ssymnum;
2314 if (last_csect_name && !misc_func_recorded)
2322 misc_func_recorded = 1;
2328 pst, psymtab_include_list,
2329 includes_used, symnum_before,
2330 dependency_list, dependencies_used,
2333 dependencies_used = 0;
2342 if (!strcmp (namestring,
".file") &&
symbol.n_numaux > 0)
2347 filestring = namestring;
2352 last_csect_name = NULL;
2358 complaint (_(
"Storage class %d not recognized during scan"),
2408 int naux1 =
symbol.n_numaux + 1;
2411 sraw_symbol += bfd_coff_symesz (abfd) * naux1;
2444 if (pst && strcmp (namestring, pst->
filename) == 0)
2450 for (i = 0; i < includes_used; i++)
2451 if (strcmp (namestring, psymtab_include_list[i]) == 0)
2459 psymtab_include_list[includes_used++] = namestring;
2460 if (includes_used >= includes_allocated)
2462 const char **orig = psymtab_include_list;
2464 psymtab_include_list = (
const char **)
2465 alloca ((includes_allocated *= 2) *
2466 sizeof (
const char *));
2467 memcpy (psymtab_include_list, orig,
2468 includes_used *
sizeof (
const char *));
2488 p = strchr (namestring,
':');
2532 if (p >= namestring + 2
2533 || (p == namestring + 1
2534 && namestring[0] !=
' '))
2557 if (p != namestring)
2584 while ((*p >=
'0' && *p <=
'9')
2585 || *p ==
'(' || *p ==
',' || *p ==
')'
2608 while (*p && *p !=
';' && *p !=
',')
2614 if (*p ==
'\\' || (*p ==
'?' && p[1] ==
'\0'))
2619 for (q = p; *q && *q !=
':'; q++)
2623 pst->
add_psymbol (gdb::string_view (p, q - p),
true,
2631 while (*p && *p !=
',')
2653 std::string
name (namestring, (p - namestring));
2672 std::string
name (namestring, (p - namestring));
2680 if (startswith (namestring,
"@FIX"))
2732 complaint (_(
"unknown symbol descriptor `%c'"), p[1]);
2745 pst, psymtab_include_list, includes_used,
2746 ssymnum, dependency_list,
2747 dependencies_used, textlow_not_set);
2783 file_ptr symtab_offset;
2784 file_ptr stringtab_offset;
2793 num_symbols = bfd_get_symcount (abfd);
2794 symtab_offset = obj_sym_filepos (abfd);
2795 stringtab_offset = symtab_offset +
2796 num_symbols * coff_data (abfd)->local_symesz;
2798 info->min_lineno_offset = 0;
2799 info->max_lineno_offset = 0;
2802 if (num_symbols > 0)
2811 struct bfd_section *secp;
2812 bfd_size_type length;
2813 bfd_byte *debugsec = NULL;
2815 secp = bfd_get_section_by_name (abfd,
".debug");
2818 length = bfd_section_size (secp);
2825 if (!bfd_get_full_section_contents (abfd, secp, &debugsec))
2827 error (_(
"Error reading .debug section of `%s': %s"),
2828 name, bfd_errmsg (bfd_get_error ()));
2832 info->debugsec = (
char *) debugsec;
2838 val = bfd_seek (abfd, symtab_offset,
SEEK_SET);
2840 error (_(
"Error reading symbols from %s: %s"),
2841 name, bfd_errmsg (bfd_get_error ()));
2842 size = coff_data (abfd)->local_symesz * num_symbols;
2844 info->symtbl_num_syms = num_symbols;
2846 val = bfd_bread (info->symtbl,
size, abfd);
2876 const char *first_section_name;
2893 && strcmp (first_section_name,
".text") != 0)
2897 && strcmp (first_section_name,
".data") != 0)
2901 && strcmp (first_section_name,
".bss") != 0)
2905 && strcmp (first_section_name,
".rodata") != 0)
2939 asection *sect = bfd_get_section_by_name (abfd,
".ldinfo");
2941 file_ptr offset = 0;
2947 for (offset = 0; offset < bfd_section_size (sect);)
2953 if (!bfd_get_section_contents (abfd, sect, buf, offset, 4))
2955 next = bfd_get_32 (abfd, buf);
2963 return n_entries - 1;
2972 asection *sect = bfd_get_section_by_name (abfd,
".loader");
2985 if (!bfd_get_section_contents (abfd, sect, buf, 16, 4))
2987 l_nimpid = bfd_get_32 (abfd, buf);
2992 return l_nimpid - 1;
void * xrealloc(void *ptr, size_t size)
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()
struct pending ** get_file_symbols()
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)
struct pending ** get_global_symbols()
void start_subfile(const char *name)
const char * get_last_source_file()
struct pending ** get_local_symbols()
const char * pop_subfile()
void add_symbol_to_list(struct symbol *symbol, struct pending **listhead)
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)
struct partial_symtab ** allocate_dependencies(int number)
#define complaint(FMT,...)
int gdb_bfd_section_index(bfd *abfd, asection *section)
CORE_ADDR gdbarch_addr_bits_remove(struct gdbarch *gdbarch, CORE_ADDR addr)
static struct linetable * new_linetable(int)
const char * objfile_name(const struct objfile *objfile)
#define SECT_OFF_DATA(objfile)
#define SECT_OFF_TEXT(objfile)
void dwarf2_initialize_objfile(struct objfile *objfile)
int dwarf2_has_info(struct objfile *, const struct dwarf2_debug_sections *, bool=false)
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)
void scan_file_globals(struct objfile *objfile)
const char *(* next_symbol_text_func)(struct objfile *)
struct pending_stabs * global_stabs
void stabsread_init(void)
void common_block_start(const char *name, struct objfile *objfile)
#define next_symbol_text(objfile)
struct pending_block * old_blocks
void set_section_index(short idx)
void set_linkage_name(const char *linkage_name)
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 *)
struct bfd_section * the_bfd_section
struct gdbarch * arch() const
struct objfile_per_bfd_storage * per_bfd
struct obj_section * sections
CORE_ADDR text_section_offset() const
auto_obstack objfile_obstack
std::forward_list< quick_symbol_functions_up > qf
::section_offsets section_offsets
struct partial_symtab ** dependencies
unsigned int text_low_valid
CORE_ADDR raw_text_low() const
void set_text_low(CORE_ADDR addr)
int number_of_dependencies
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)
const std::shared_ptr< psymtab_storage > & get_partial_symtabs() const
struct compunit_symtab * compunit_symtab
std::vector< linetable_entry > line_vector_entries
void set_aclass_index(unsigned int aclass_index)
void set_type(struct type *type)
void set_value_address(CORE_ADDR address)
CORE_ADDR value_address() const
void set_domain(domain_enum domain)
file_ptr min_lineno_offset
file_ptr max_lineno_offset
enum language deduce_language_from_filename(const char *filename)
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)
std::vector< other_sections > section_addr_info
void perror_with_name(const char *string)
static void eb_complaint(int arg1)
static unsigned int first_fun_line_offset
static void read_symbol(struct internal_syment *, int)
CORE_ADDR xcoff_get_toc_offset(struct objfile *objfile)
static int static_block_section
static CORE_ADDR first_object_file_end
int xcoff_get_n_import_files(bfd *abfd)
static void aix_process_linenos(struct objfile *objfile)
static int static_block_base
static void ef_complaint(int arg1)
static int secnum_to_section(int, struct objfile *)
static int read_symbol_lineno(int)
static unsigned local_symesz
static void xcoff_read_symtab(legacy_psymtab *self, struct objfile *objfile)
void _initialize_xcoffread()
static struct objfile * this_symtab_objfile
static void arrange_linetable(std::vector< linetable_entry > &old_linetable)
static struct symbol * process_xcoff_symbol(struct xcoff_symbol *, struct objfile *)
static const char * xcoff_next_symbol_text(struct objfile *)
struct _inclTable InclTable
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)
static legacy_psymtab * xcoff_start_psymtab(psymtab_storage *partial_symtabs, struct objfile *objfile, const char *filename, int first_symnum)
static char * coff_getfilename(union internal_auxent *, struct objfile *)
static void allocate_include_entry(void)
static void xcoff_secnum_to_sections(int n_scnum, struct objfile *objfile, asection **bfd_sect, int *secnum)
#define INITIAL_INCLUDE_TABLE_LENGTH
static void xcoff_symfile_finish(struct objfile *)
static void xcoff_expand_psymtab(legacy_psymtab *pst, struct objfile *objfile)
static void xcoff_symfile_offsets(struct objfile *objfile, const section_addr_info &addrs)
static void read_xcoff_symtab(struct objfile *, legacy_psymtab *)
static void swap_sym(struct internal_syment *symbol, union internal_auxent *aux, const char **name, char **raw, unsigned int *symnump, struct objfile *objfile)
static struct xcoff_symbol fcn_cs_saved
static void xcoff_initial_scan(struct objfile *, symfile_add_flags)
static void record_include_begin(struct xcoff_symbol *)
static enum language psymtab_language
static void scan_xcoff_symtab(minimal_symbol_reader &, psymtab_storage *partial_symtabs, struct objfile *)
static void init_stringtab(bfd *, file_ptr, struct objfile *)
static int symname_alloced
static void record_include_end(struct xcoff_symbol *)
static void find_targ_sec(bfd *, asection *, void *)
static CORE_ADDR read_symbol_nvalue(int)
#define INITIAL_STABVECTOR_LENGTH
#define XCOFF_DATA(objfile)
static const struct dwarf2_debug_sections dwarf2_xcoff_names
static void process_linenos(CORE_ADDR, CORE_ADDR)
static void xcoff_new_init(struct objfile *)
static void xcoff_symfile_init(struct objfile *)
static legacy_psymtab * this_symtab_psymtab
static InclTable * inclTable
static void enter_line_range(struct subfile *, unsigned, unsigned, CORE_ADDR, CORE_ADDR, unsigned *)
static asection * secnum_to_bfd_section(int, struct objfile *)
static const registry< objfile >::key< xcoff_symfile_info > xcoff_objfile_data_key
#define complete_symtab(name, start_addr)
static CORE_ADDR cur_src_end_addr
static void bf_notfound_complaint(void)
static const struct sym_fns xcoff_sym_fns
static void find_linenos(struct bfd *abfd, struct bfd_section *asect, void *vpinfo)
static void function_outside_compilation_unit_complaint(const char *arg1)
static legacy_psymtab * xcoff_end_psymtab(struct objfile *objfile, psymtab_storage *partial_symtabs, legacy_psymtab *pst, const char **include_list, int num_includes, int capping_symbol_number, legacy_psymtab **dependency_list, int number_dependencies, int textlow_not_set)
#define SYMNAME_ALLOC(NAME, ALLOCED)
static int xcoff_get_core_n_import_files(bfd *abfd)