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;
421 std::vector<linetable_entry> fentries;
423 for (
int ii = 0; ii < old_linetable.size (); ++ii)
425 if (!old_linetable[ii].is_stmt)
428 if (old_linetable[ii].line == 0)
431 fentries.emplace_back ();
439 if (fentries.empty ())
442 std::sort (fentries.begin (), fentries.end ());
450 for (
int i = 0; i < old_linetable.size () && old_linetable[i].line != 0; ++i)
459 if (jj + 1 < old_linetable.size ()
460 && (old_linetable[jj].unrelocated_pc ()
461 != old_linetable[jj + 1].unrelocated_pc ()))
467 for (jj = entry.line + 1;
468 jj < old_linetable.size () && old_linetable[jj].line != 0;
496#define INITIAL_INCLUDE_TABLE_LENGTH 20
535 complaint (_(
"Mismatched C_BINCL/C_EINCL pair"));
588 unsigned int main_source_baseline = 0;
595 goto return_after_cleanup;
602 &main_source_baseline);
610 main_source_baseline = 0;
612 for (
int ii = 0; ii <
inclIndx; ++ii)
619 start, 0, &main_source_baseline);
630 start, 0, &main_source_baseline);
651 if (offset < max_offset + 1 - linesz)
654 &main_source_baseline);
668 for (
int ii = 0; ii <
inclIndx; ++ii)
702 if (fakename == NULL)
747 CORE_ADDR endaddr,
unsigned *firstLine)
751 unsigned int curoffset;
754 struct internal_lineno int_lnno;
755 unsigned int limit_offset;
759 if (endoffset == 0 && startaddr == 0 && endaddr == 0)
761 curoffset = beginoffset;
766 if (endoffset >= limit_offset)
768 complaint (_(
"Bad line table offset in C_EINCL directive"));
771 limit_offset = endoffset;
777 linesz = coff_data (abfd)->local_linesz;
778 ext_lnno = alloca (linesz);
780 while (curoffset <= limit_offset)
782 if (bfd_seek (abfd, curoffset,
SEEK_SET) != 0
783 || bfd_read (ext_lnno, linesz, abfd) != linesz)
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))
798 if (int_lnno.l_lnno == 0)
806 unrelocated_addr (record_addr));
816#define complete_symtab(name, start_addr) { \
817 set_last_source_file (name); \
818 set_last_source_start_addr (start_addr); \
846 const char *
name, unrelocated_addr address,
882 struct internal_syment
symbol;
892 complaint (_(
"Unexpected symbol continuation"));
898 else if (
symbol.n_sclass & 0x80)
906 complaint (_(
"Unexpected symbol continuation"));
925 const char *debugfmt = bfd_xcoff_is_xcoff64 (abfd) ?
"XCOFF64" :
"XCOFF";
927 struct internal_syment
symbol[1];
928 union internal_auxent main_aux;
930 CORE_ADDR file_start_addr = 0;
931 CORE_ADDR file_end_addr = 0;
933 int next_file_symnum = -1;
934 unsigned int max_symnum;
935 int just_started = 1;
937 CORE_ADDR fcn_start_addr = 0;
943 union internal_auxent fcn_aux_saved {};
946 const char *filestring = pst->
filename;
948 const char *last_csect_name;
963 pst_symtab_language);
972 while (
symnum < max_symnum)
999 if (cs->
c_name[E_SYMNMLEN - 1] !=
'\0')
1005 strncpy (p, cs->
c_name, E_SYMNMLEN);
1006 p[E_SYMNMLEN] =
'\0';
1011 else if (
symbol->n_sclass & 0x80)
1034 for (ii =
symbol->n_numaux; ii; --ii)
1036 raw_symbol += coff_data (abfd)->local_auxesz;
1056 0, pst_symtab_language);
1067#define CSECT(PP) ((PP)->x_csect)
1068#define CSECT_LEN(PP) (CSECT(PP).x_scnlen.u64)
1069#define CSECT_ALIGN(PP) (SMTYP_ALIGN(CSECT(PP).x_smtyp))
1070#define CSECT_SMTYP(PP) (SMTYP_SMTYP(CSECT(PP).x_smtyp))
1071#define CSECT_SCLAS(PP) (CSECT(PP).x_smclas)
1095 bfd_coff_swap_aux_in (abfd, raw_auxptr, cs->
c_type, cs->
c_sclass,
1096 0, cs->
c_naux, &fcn_aux_saved);
1101 bfd_coff_swap_aux_in (abfd,
1136 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 size_t x_fname_len =
sizeof (aux_entry->x_file.x_n.x_fname);
1603 strncpy (buffer, aux_entry->x_file.x_n.x_fname, x_fname_len);
1604 buffer[x_fname_len] =
'\0';
1615 char *stbl = xcoff->
symtbl;
1617 if (symno < 0 || symno >= nsyms)
1634 struct internal_syment
symbol[1];
1648 int xcoff64 = bfd_xcoff_is_xcoff64 (
objfile->
obfd);
1651 int nsyms = info->symtbl_num_syms;
1652 char *stbl = info->symtbl;
1653 char *
strtbl = info->strtbl;
1655 struct internal_syment
symbol[1];
1656 union internal_auxent main_aux[1];
1680 while (symno < nsyms)
1684 if (
symbol->n_sclass == C_FCN)
1688 if (strcmp (
name,
".bf") == 0)
1691 symno +=
symbol->n_numaux + 1;
1702 0,
symbol->n_numaux, main_aux);
1704 return main_aux->x_sym.x_misc.x_lnsz.x_lnno;
1718 file_ptr offset, maxoff;
1720 count = asect->lineno_count;
1722 if (strcmp (asect->name,
".text") != 0 || count == 0)
1725 size = count * coff_data (abfd)->local_linesz;
1727 offset = asect->line_filepos;
1728 maxoff = offset +
size;
1731 info->min_lineno_offset = offset;
1733 if (maxoff > info->max_lineno_offset)
1734 info->max_lineno_offset = maxoff;
1740 gdb_assert (!pst->
readin);
1763 gdb_assert (!self->
readin);
1821 unsigned char lengthbuf[4];
1827 if (bfd_seek (abfd, offset,
SEEK_SET) < 0)
1828 error (_(
"cannot seek to string table in %s: %s"),
1829 bfd_get_filename (abfd), bfd_errmsg (bfd_get_error ()));
1831 val = bfd_read ((
char *) lengthbuf,
sizeof lengthbuf, abfd);
1832 length = bfd_h_get_32 (abfd, lengthbuf);
1837 if (val !=
sizeof lengthbuf || length <
sizeof lengthbuf)
1848 memcpy (
strtbl, lengthbuf,
sizeof lengthbuf);
1849 if (length ==
sizeof lengthbuf)
1852 val = bfd_read (
strtbl +
sizeof lengthbuf, length -
sizeof lengthbuf, abfd);
1854 if (val != length -
sizeof lengthbuf)
1855 error (_(
"cannot read string table from %s: %s"),
1856 bfd_get_filename (abfd), bfd_errmsg (bfd_get_error ()));
1857 if (
strtbl[length - 1] !=
'\0')
1858 error (_(
"bad symbol file: string table "
1859 "does not end with null character"));
1879 const char *filename,
int first_symnum)
1884 unrelocated_addr (0));
1909 const char **include_list,
int num_includes,
1910 int capping_symbol_number,
1912 int number_dependencies,
int textlow_not_set)
1916 if (capping_symbol_number != -1)
1918 capping_symbol_number
1927 if (number_dependencies)
1937 for (i = 0; i < num_includes; i++)
1957 if (num_includes == 0
1958 && number_dependencies == 0
1979 const char **
name,
char **raw,
unsigned int *symnump,
1987 if (
symbol->n_name[E_SYMNMLEN - 1] !=
'\0')
1995 strncpy (p,
symbol->n_name, E_SYMNMLEN);
1996 p[E_SYMNMLEN] =
'\0';
2002 *
name = ((
struct external_syment *) *raw)->e.e_name;
2004 else if (
symbol->n_sclass & 0x80)
2014 if (
symbol->n_numaux > 0)
2019 *symnump +=
symbol->n_numaux;
2027 complaint (_(
"function `%s' appears to be defined "
2028 "outside of all compilation units"),
2037 CORE_ADDR toc_offset = 0;
2038 const char *filestring = NULL;
2040 const char *namestring;
2049 const char **psymtab_include_list;
2050 int includes_allocated;
2055 int dependencies_used, dependencies_allocated;
2058 struct internal_syment
symbol;
2059 union internal_auxent main_aux[5];
2060 unsigned int ssymnum;
2062 const char *last_csect_name = NULL;
2063 unrelocated_addr last_csect_val = unrelocated_addr (0);
2064 int last_csect_sec = 0;
2065 int misc_func_recorded = 0;
2066 int textlow_not_set = 1;
2070 includes_allocated = 30;
2072 psymtab_include_list = (
const char **) alloca (includes_allocated *
2073 sizeof (
const char *));
2075 dependencies_allocated = 30;
2076 dependencies_used = 0;
2089 while (ssymnum < nsyms)
2095 bfd_coff_swap_sym_in (abfd, sraw_symbol, &
symbol);
2096 sclass =
symbol.n_sclass;
2105 union internal_auxent csect_aux;
2106 unsigned int symnum_before = ssymnum;
2112 bfd_coff_swap_aux_in
2122 csect_aux = main_aux[0];
2125 if (namestring[0] ==
'$'
2126 || (namestring[0] ==
'.' && namestring[1] ==
'$'))
2129 switch (csect_aux.x_csect.x_smtyp & 0x7)
2132 switch (csect_aux.x_csect.x_smclas)
2135 if (last_csect_name)
2142 if (!misc_func_recorded)
2145 (reader, last_csect_name, last_csect_val,
2147 misc_func_recorded = 1;
2156 (
objfile, partial_symtabs, pst, psymtab_include_list,
2157 includes_used, symnum_before, dependency_list,
2158 dependencies_used, textlow_not_set);
2160 dependencies_used = 0;
2172 if (namestring && (namestring[0] ==
'.'
2173 || namestring[0] ==
'@'))
2175 last_csect_name = namestring;
2176 last_csect_val = unrelocated_addr (
symbol.n_value);
2177 last_csect_sec =
symbol.n_scnum;
2181 unrelocated_addr highval
2182 = unrelocated_addr (
symbol.n_value
2187 unrelocated_addr loval
2188 = unrelocated_addr (
symbol.n_value);
2190 || loval < pst->unrelocated_text_low ())
2193 misc_func_recorded = 0;
2200 if (*namestring !=
'.')
2202 (reader, namestring, unrelocated_addr (
symbol.n_value),
2209 warning (_(
"More than one XMC_TC0 symbol found."));
2210 toc_offset =
symbol.n_value;
2216 toc_offset -= bfd_section_vma (bfd_sect);
2230 switch (csect_aux.x_csect.x_smclas)
2237 main_aux[0].x_sym.x_fcnary.x_fcn.x_lnnoptr;
2240 (reader, namestring, unrelocated_addr (
symbol.n_value),
2243 misc_func_recorded = 1;
2255 (reader, namestring, unrelocated_addr (
symbol.n_value),
2257 misc_func_recorded = 1;
2275 if (*namestring !=
'.')
2277 (reader, namestring, unrelocated_addr (
symbol.n_value),
2285 switch (csect_aux.x_csect.x_smclas)
2291 if (*namestring !=
'.')
2293 (reader, namestring, unrelocated_addr (
symbol.n_value),
2307 unsigned int symnum_before;
2309 symnum_before = ssymnum;
2315 if (last_csect_name && !misc_func_recorded)
2323 misc_func_recorded = 1;
2329 pst, psymtab_include_list,
2330 includes_used, symnum_before,
2331 dependency_list, dependencies_used,
2334 dependencies_used = 0;
2343 if (!strcmp (namestring,
".file") &&
symbol.n_numaux > 0)
2348 filestring = namestring;
2353 last_csect_name = NULL;
2359 complaint (_(
"Storage class %d not recognized during scan"),
2409 int naux1 =
symbol.n_numaux + 1;
2412 sraw_symbol += bfd_coff_symesz (abfd) * naux1;
2445 if (pst && strcmp (namestring, pst->
filename) == 0)
2451 for (i = 0; i < includes_used; i++)
2452 if (strcmp (namestring, psymtab_include_list[i]) == 0)
2460 psymtab_include_list[includes_used++] = namestring;
2461 if (includes_used >= includes_allocated)
2463 const char **orig = psymtab_include_list;
2465 psymtab_include_list = (
const char **)
2466 alloca ((includes_allocated *= 2) *
2467 sizeof (
const char *));
2468 memcpy (psymtab_include_list, orig,
2469 includes_used *
sizeof (
const char *));
2489 p = strchr (namestring,
':');
2508 unrelocated_addr (
symbol.n_value),
2521 unrelocated_addr (
symbol.n_value),
2533 if (p >= namestring + 2
2534 || (p == namestring + 1
2535 && namestring[0] !=
' '))
2541 unrelocated_addr (0),
2551 unrelocated_addr (0),
2560 if (p != namestring)
2566 unrelocated_addr (0),
2588 while ((*p >=
'0' && *p <=
'9')
2589 || *p ==
'(' || *p ==
',' || *p ==
')'
2612 while (*p && *p !=
';' && *p !=
',')
2618 if (*p ==
'\\' || (*p ==
'?' && p[1] ==
'\0'))
2623 for (q = p; *q && *q !=
':'; q++)
2627 pst->
add_psymbol (gdb::string_view (p, q - p),
true,
2630 unrelocated_addr (0),
2636 while (*p && *p !=
',')
2651 unrelocated_addr (0),
2659 std::string
name (namestring, (p - namestring));
2667 unrelocated_addr (
symbol.n_value),
2678 std::string
name (namestring, (p - namestring));
2686 if (startswith (namestring,
"@FIX"))
2694 unrelocated_addr (
symbol.n_value),
2738 complaint (_(
"unknown symbol descriptor `%c'"), p[1]);
2751 pst, psymtab_include_list, includes_used,
2752 ssymnum, dependency_list,
2753 dependencies_used, textlow_not_set);
2789 file_ptr symtab_offset;
2790 file_ptr stringtab_offset;
2799 num_symbols = bfd_get_symcount (abfd);
2800 symtab_offset = obj_sym_filepos (abfd);
2801 stringtab_offset = symtab_offset +
2802 num_symbols * coff_data (abfd)->local_symesz;
2804 info->min_lineno_offset = 0;
2805 info->max_lineno_offset = 0;
2808 if (num_symbols > 0)
2817 struct bfd_section *secp;
2818 bfd_size_type length;
2819 bfd_byte *debugsec = NULL;
2821 secp = bfd_get_section_by_name (abfd,
".debug");
2824 length = bfd_section_size (secp);
2831 if (!bfd_get_full_section_contents (abfd, secp, &debugsec))
2833 error (_(
"Error reading .debug section of `%s': %s"),
2834 name, bfd_errmsg (bfd_get_error ()));
2838 info->debugsec = (
char *) debugsec;
2844 val = bfd_seek (abfd, symtab_offset,
SEEK_SET);
2846 error (_(
"Error reading symbols from %s: %s"),
2847 name, bfd_errmsg (bfd_get_error ()));
2848 size = coff_data (abfd)->local_symesz * num_symbols;
2850 info->symtbl_num_syms = num_symbols;
2852 val = bfd_read (info->symtbl,
size, abfd);
2854 perror_with_name (_(
"reading symbol table"));
2882 const char *first_section_name;
2900 && strcmp (first_section_name,
".text") != 0)
2904 && strcmp (first_section_name,
".data") != 0)
2908 && strcmp (first_section_name,
".bss") != 0)
2912 && strcmp (first_section_name,
".rodata") != 0)
2946 asection *sect = bfd_get_section_by_name (abfd,
".ldinfo");
2948 file_ptr offset = 0;
2954 for (offset = 0; offset < bfd_section_size (sect);)
2960 if (!bfd_get_section_contents (abfd, sect, buf, offset, 4))
2962 next = bfd_get_32 (abfd, buf);
2970 return n_entries - 1;
2979 asection *sect = bfd_get_section_by_name (abfd,
".loader");
2992 if (!bfd_get_section_contents (abfd, sect, buf, 16, 4))
2994 l_nimpid = bfd_get_32 (abfd, buf);
2999 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 subfile * get_current_subfile()
void record_debugformat(const char *format)
void set_last_source_file(const char *name)
struct compunit_symtab * end_compunit_symtab(CORE_ADDR end_addr)
struct pending ** get_global_symbols()
void record_line(struct subfile *subfile, int line, unrelocated_addr pc)
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, unrelocated_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)
bool dwarf2_has_info(struct objfile *, const struct dwarf2_debug_sections *, bool=false)
void dwarf2_initialize_objfile(struct objfile *objfile)
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 *)
void set_unrelocated_pc(unrelocated_addr pc)
struct bfd_section * the_bfd_section
struct obj_section * sections_start
struct gdbarch * arch() const
struct objfile_per_bfd_storage * per_bfd
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
unrelocated_addr unrelocated_text_high() const
void set_text_high(unrelocated_addr addr)
int number_of_dependencies
void expand_dependencies(struct objfile *)
void set_text_low(unrelocated_addr addr)
void add_psymbol(gdb::string_view name, bool copy_name, domain_enum domain, enum address_class theclass, short section, psymbol_placement where, unrelocated_addr coreaddr, enum language language, psymtab_storage *partial_symtabs, struct objfile *objfile)
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
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 subfile * main_subfile
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 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 record_minimal_symbol(minimal_symbol_reader &reader, const char *name, unrelocated_addr address, enum minimal_symbol_type ms_type, int n_scnum, struct objfile *objfile)
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)