Lines Matching refs:dso
11 #include "util/dso.h"
21 static const char *dso__name(struct dso *dso)
25 if (dso->symsrc_filename)
26 dso_name = dso->symsrc_filename;
28 dso_name = dso->long_name;
83 static struct symbol *new_inline_sym(struct dso *dso,
93 if (dso) {
94 demangled = dso__demangle_sym(dso, 0, funcname);
278 static int inline_list__append_dso_a2l(struct dso *dso,
282 struct a2l_data *a2l = dso->a2l;
283 struct symbol *inline_sym = new_inline_sym(dso, sym, a2l->funcname);
293 char **file, unsigned int *line, struct dso *dso,
298 struct a2l_data *a2l = dso->a2l;
301 dso->a2l = addr2line_init(dso_name);
302 a2l = dso->a2l;
322 if (node && inline_list__append_dso_a2l(dso, node, sym))
333 if (inline_list__append_dso_a2l(dso, node, sym))
352 void dso__free_a2l(struct dso *dso)
354 struct a2l_data *a2l = dso->a2l;
361 dso->a2l = NULL;
365 struct dso *dso, struct symbol *sym)
378 addr2line(dso_name, addr, NULL, NULL, dso, true, node, sym);
407 struct dso *dso __maybe_unused,
445 void dso__free_a2l(struct dso *dso __maybe_unused)
450 struct dso *dso __maybe_unused,
493 inline_sym = new_inline_sym(dso, sym, funcname);
515 * dso.
519 char *__get_srcline(struct dso *dso, u64 addr, struct symbol *sym,
528 if (!dso->has_srcline)
531 dso_name = dso__name(dso);
535 if (!addr2line(dso_name, addr, &file, &line, dso,
545 dso->a2l_fails = 0;
550 if (dso->a2l_fails && ++dso->a2l_fails > A2L_FAIL_LIMIT) {
551 dso->has_srcline = 0;
552 dso__free_a2l(dso);
563 } else if (asprintf(&srcline, "%s[%" PRIx64 "]", dso->short_name, addr) < 0)
569 char *get_srcline_split(struct dso *dso, u64 addr, unsigned *line)
574 if (!dso->has_srcline)
577 dso_name = dso__name(dso);
581 if (!addr2line(dso_name, addr, &file, line, dso, true, NULL, NULL))
584 dso->a2l_fails = 0;
588 if (dso->a2l_fails && ++dso->a2l_fails > A2L_FAIL_LIMIT) {
589 dso->has_srcline = 0;
590 dso__free_a2l(dso);
602 char *get_srcline(struct dso *dso, u64 addr, struct symbol *sym,
605 return __get_srcline(dso, addr, sym, show_sym, show_addr, false, ip);
677 struct inline_node *dso__parse_addr_inlines(struct dso *dso, u64 addr,
682 dso_name = dso__name(dso);
686 return addr2inlines(dso_name, addr, dso, sym);