Symbol: a2l
tools/perf/util/addr2line.c
110
if (write(a2l->in, ",\n", 2) != 2)
tools/perf/util/addr2line.c
113
io__init(&io, a2l->out, buf, sizeof(buf));
tools/perf/util/addr2line.c
290
struct child_process *a2l = dso__a2l(dso);
tools/perf/util/addr2line.c
303
if (!a2l) {
tools/perf/util/addr2line.c
309
a2l = dso__a2l(dso);
tools/perf/util/addr2line.c
312
if (a2l == NULL) {
tools/perf/util/addr2line.c
317
cmd_a2l_style = cmd_addr2line_configure(a2l, dso_name);
tools/perf/util/addr2line.c
331
written = len > 0 ? write(a2l->in, buf, len) : -1;
tools/perf/util/addr2line.c
337
io__init(&io, a2l->out, buf, sizeof(buf));
tools/perf/util/addr2line.c
424
addr2line_subprocess_cleanup(a2l);
tools/perf/util/addr2line.c
431
struct child_process *a2l = dso__a2l(dso);
tools/perf/util/addr2line.c
433
if (!a2l)
tools/perf/util/addr2line.c
436
addr2line_subprocess_cleanup(a2l);
tools/perf/util/addr2line.c
45
static void addr2line_subprocess_cleanup(struct child_process *a2l)
tools/perf/util/addr2line.c
47
if (a2l->pid != -1) {
tools/perf/util/addr2line.c
48
kill(a2l->pid, SIGKILL);
tools/perf/util/addr2line.c
49
finish_command(a2l); /* ignore result, we don't care */
tools/perf/util/addr2line.c
50
a2l->pid = -1;
tools/perf/util/addr2line.c
51
close(a2l->in);
tools/perf/util/addr2line.c
52
close(a2l->out);
tools/perf/util/addr2line.c
55
free(a2l);
tools/perf/util/addr2line.c
66
struct child_process *a2l = zalloc(sizeof(*a2l));
tools/perf/util/addr2line.c
69
if (a2l == NULL) {
tools/perf/util/addr2line.c
74
a2l->pid = -1;
tools/perf/util/addr2line.c
75
a2l->in = -1;
tools/perf/util/addr2line.c
76
a2l->out = -1;
tools/perf/util/addr2line.c
77
a2l->no_stderr = 1;
tools/perf/util/addr2line.c
79
a2l->argv = argv;
tools/perf/util/addr2line.c
80
start_command_status = start_command(a2l);
tools/perf/util/addr2line.c
81
a2l->argv = NULL; /* it's not used after start_command; avoid dangling pointers */
tools/perf/util/addr2line.c
86
addr2line_subprocess_cleanup(a2l);
tools/perf/util/addr2line.c
90
return a2l;
tools/perf/util/addr2line.c
99
static enum cmd_a2l_style cmd_addr2line_configure(struct child_process *a2l, const char *dso_name)
tools/perf/util/dso.h
271
void *a2l;
tools/perf/util/dso.h
328
return RC_CHK_ACCESS(dso)->a2l;
tools/perf/util/dso.h
333
RC_CHK_ACCESS(dso)->a2l = val;
tools/perf/util/libbfd.c
118
a2l->syms = syms;
tools/perf/util/libbfd.c
126
struct a2l_data *a2l = data;
tools/perf/util/libbfd.c
129
if (a2l->found)
tools/perf/util/libbfd.c
140
pc = a2l->addr;
tools/perf/util/libbfd.c
155
a2l->found = bfd_find_nearest_line(abfd, section, a2l->syms, pc - vma,
tools/perf/util/libbfd.c
156
&a2l->filename, &a2l->funcname,
tools/perf/util/libbfd.c
157
&a2l->line);
tools/perf/util/libbfd.c
159
if (a2l->filename && !strlen(a2l->filename))
tools/perf/util/libbfd.c
160
a2l->filename = NULL;
tools/perf/util/libbfd.c
166
struct a2l_data *a2l = NULL;
tools/perf/util/libbfd.c
176
a2l = zalloc(sizeof(*a2l));
tools/perf/util/libbfd.c
177
if (a2l == NULL)
tools/perf/util/libbfd.c
180
a2l->abfd = abfd;
tools/perf/util/libbfd.c
181
a2l->input = strdup(path);
tools/perf/util/libbfd.c
182
if (a2l->input == NULL)
tools/perf/util/libbfd.c
185
if (slurp_symtab(abfd, a2l))
tools/perf/util/libbfd.c
188
return a2l;
tools/perf/util/libbfd.c
191
if (a2l) {
tools/perf/util/libbfd.c
192
zfree((char **)&a2l->input);
tools/perf/util/libbfd.c
193
free(a2l);
tools/perf/util/libbfd.c
199
static void addr2line_cleanup(struct a2l_data *a2l)
tools/perf/util/libbfd.c
201
if (a2l->abfd)
tools/perf/util/libbfd.c
202
bfd_close(a2l->abfd);
tools/perf/util/libbfd.c
203
zfree((char **)&a2l->input);
tools/perf/util/libbfd.c
204
zfree(&a2l->syms);
tools/perf/util/libbfd.c
205
free(a2l);
tools/perf/util/libbfd.c
212
struct a2l_data *a2l = dso__a2l(dso);
tools/perf/util/libbfd.c
213
struct symbol *inline_sym = new_inline_sym(dso, sym, a2l->funcname);
tools/perf/util/libbfd.c
216
if (a2l->filename)
tools/perf/util/libbfd.c
217
srcline = srcline_from_fileline(a2l->filename, a2l->line);
tools/perf/util/libbfd.c
228
struct a2l_data *a2l = dso__a2l(dso);
tools/perf/util/libbfd.c
230
if (!a2l) {
tools/perf/util/libbfd.c
231
a2l = addr2line_init(dso_name);
tools/perf/util/libbfd.c
232
dso__set_a2l(dso, a2l);
tools/perf/util/libbfd.c
235
if (a2l == NULL) {
tools/perf/util/libbfd.c
241
a2l->addr = addr;
tools/perf/util/libbfd.c
242
a2l->found = false;
tools/perf/util/libbfd.c
244
bfd_map_over_sections(a2l->abfd, find_address_in_section, a2l);
tools/perf/util/libbfd.c
246
if (!a2l->found)
tools/perf/util/libbfd.c
255
while (bfd_find_inliner_info(a2l->abfd, &a2l->filename,
tools/perf/util/libbfd.c
256
&a2l->funcname, &a2l->line) &&
tools/perf/util/libbfd.c
259
if (a2l->filename && !strlen(a2l->filename))
tools/perf/util/libbfd.c
260
a2l->filename = NULL;
tools/perf/util/libbfd.c
272
*file = a2l->filename ? strdup(a2l->filename) : NULL;
tools/perf/util/libbfd.c
277
*line = a2l->line;
tools/perf/util/libbfd.c
284
struct a2l_data *a2l = dso__a2l(dso);
tools/perf/util/libbfd.c
286
if (!a2l)
tools/perf/util/libbfd.c
289
addr2line_cleanup(a2l);
tools/perf/util/libbfd.c
89
static int slurp_symtab(bfd *abfd, struct a2l_data *a2l)