Lines Matching refs:abfd
139 bfd *abfd; member
158 static int slurp_symtab(bfd *abfd, struct a2l_data *a2l) in slurp_symtab() argument
165 if ((bfd_get_file_flags(abfd) & HAS_SYMS) == 0) in slurp_symtab()
166 return bfd_error(bfd_get_filename(abfd)); in slurp_symtab()
168 storage = bfd_get_symtab_upper_bound(abfd); in slurp_symtab()
170 storage = bfd_get_dynamic_symtab_upper_bound(abfd); in slurp_symtab()
174 return bfd_error(bfd_get_filename(abfd)); in slurp_symtab()
178 symcount = bfd_canonicalize_dynamic_symtab(abfd, syms); in slurp_symtab()
180 symcount = bfd_canonicalize_symtab(abfd, syms); in slurp_symtab()
184 return bfd_error(bfd_get_filename(abfd)); in slurp_symtab()
191 static void find_address_in_section(bfd *abfd, asection *section, void *data) in find_address_in_section() argument
202 flags = bfd_get_section_flags(abfd, section); in find_address_in_section()
211 vma = bfd_get_section_vma(abfd, section); in find_address_in_section()
224 a2l->found = bfd_find_nearest_line(abfd, section, a2l->syms, pc - vma, in find_address_in_section()
234 bfd *abfd; in addr2line_init() local
237 abfd = bfd_openr(path, NULL); in addr2line_init()
238 if (abfd == NULL) in addr2line_init()
241 if (!bfd_check_format(abfd, bfd_object)) in addr2line_init()
248 a2l->abfd = abfd; in addr2line_init()
253 if (slurp_symtab(abfd, a2l)) in addr2line_init()
263 bfd_close(abfd); in addr2line_init()
269 if (a2l->abfd) in addr2line_cleanup()
270 bfd_close(a2l->abfd); in addr2line_cleanup()
314 bfd_map_over_sections(a2l->abfd, find_address_in_section, a2l); in addr2line()
325 while (bfd_find_inliner_info(a2l->abfd, &a2l->filename, in addr2line()