Lines Matching defs:a2l

89 static int slurp_symtab(bfd *abfd, struct a2l_data *a2l)
118 a2l->syms = syms;
126 struct a2l_data *a2l = data;
129 if (a2l->found)
140 pc = a2l->addr;
155 a2l->found = bfd_find_nearest_line(abfd, section, a2l->syms, pc - vma,
156 &a2l->filename, &a2l->funcname,
157 &a2l->line);
159 if (a2l->filename && !strlen(a2l->filename))
160 a2l->filename = NULL;
166 struct a2l_data *a2l = NULL;
176 a2l = zalloc(sizeof(*a2l));
177 if (a2l == NULL)
180 a2l->abfd = abfd;
181 a2l->input = strdup(path);
182 if (a2l->input == NULL)
185 if (slurp_symtab(abfd, a2l))
188 return a2l;
191 if (a2l) {
192 zfree((char **)&a2l->input);
193 free(a2l);
199 static void addr2line_cleanup(struct a2l_data *a2l)
201 if (a2l->abfd)
202 bfd_close(a2l->abfd);
203 zfree((char **)&a2l->input);
204 zfree(&a2l->syms);
205 free(a2l);
212 struct a2l_data *a2l = dso__a2l(dso);
213 struct symbol *inline_sym = new_inline_sym(dso, sym, a2l->funcname);
216 if (a2l->filename)
217 srcline = srcline_from_fileline(a2l->filename, a2l->line);
228 struct a2l_data *a2l = dso__a2l(dso);
230 if (!a2l) {
231 a2l = addr2line_init(dso_name);
232 dso__set_a2l(dso, a2l);
235 if (a2l == NULL) {
241 a2l->addr = addr;
242 a2l->found = false;
244 bfd_map_over_sections(a2l->abfd, find_address_in_section, a2l);
246 if (!a2l->found)
255 while (bfd_find_inliner_info(a2l->abfd, &a2l->filename,
256 &a2l->funcname, &a2l->line) &&
259 if (a2l->filename && !strlen(a2l->filename))
260 a2l->filename = NULL;
272 *file = a2l->filename ? strdup(a2l->filename) : NULL;
277 *line = a2l->line;
284 struct a2l_data *a2l = dso__a2l(dso);
286 if (!a2l)
289 addr2line_cleanup(a2l);