Lines Matching refs:abfd
30 bfd *abfd; member
49 static int slurp_symtab(bfd *abfd, struct a2l_data *a2l) in slurp_symtab() argument
56 if ((bfd_get_file_flags(abfd) & HAS_SYMS) == 0) in slurp_symtab()
57 return bfd_error(bfd_get_filename(abfd)); in slurp_symtab()
59 storage = bfd_get_symtab_upper_bound(abfd); in slurp_symtab()
61 storage = bfd_get_dynamic_symtab_upper_bound(abfd); in slurp_symtab()
65 return bfd_error(bfd_get_filename(abfd)); in slurp_symtab()
69 symcount = bfd_canonicalize_dynamic_symtab(abfd, syms); in slurp_symtab()
71 symcount = bfd_canonicalize_symtab(abfd, syms); in slurp_symtab()
75 return bfd_error(bfd_get_filename(abfd)); in slurp_symtab()
82 static void find_address_in_section(bfd *abfd, asection *section, void *data) in find_address_in_section() argument
91 if ((bfd_get_section_flags(abfd, section) & SEC_ALLOC) == 0) in find_address_in_section()
95 vma = bfd_get_section_vma(abfd, section); in find_address_in_section()
101 a2l->found = bfd_find_nearest_line(abfd, section, a2l->syms, pc - vma, in find_address_in_section()
108 bfd *abfd; in addr2line_init() local
111 abfd = bfd_openr(path, NULL); in addr2line_init()
112 if (abfd == NULL) in addr2line_init()
115 if (!bfd_check_format(abfd, bfd_object)) in addr2line_init()
122 a2l->abfd = abfd; in addr2line_init()
127 if (slurp_symtab(abfd, a2l)) in addr2line_init()
137 bfd_close(abfd); in addr2line_init()
143 if (a2l->abfd) in addr2line_cleanup()
144 bfd_close(a2l->abfd); in addr2line_cleanup()
169 bfd_map_over_sections(a2l->abfd, find_address_in_section, a2l); in addr2line()