Lines Matching refs:dso

15 #include "util/dso.h"
30 static const char *dso__name(struct dso *dso)
34 if (dso->symsrc_filename)
35 dso_name = dso->symsrc_filename;
37 dso_name = dso->long_name;
92 static struct symbol *new_inline_sym(struct dso *dso,
102 if (dso) {
103 demangled = dso__demangle_sym(dso, 0, funcname);
287 static int inline_list__append_dso_a2l(struct dso *dso,
291 struct a2l_data *a2l = dso->a2l;
292 struct symbol *inline_sym = new_inline_sym(dso, sym, a2l->funcname);
302 char **file, unsigned int *line, struct dso *dso,
307 struct a2l_data *a2l = dso->a2l;
310 dso->a2l = addr2line_init(dso_name);
311 a2l = dso->a2l;
331 if (node && inline_list__append_dso_a2l(dso, node, sym))
342 if (inline_list__append_dso_a2l(dso, node, sym))
361 void dso__free_a2l(struct dso *dso)
363 struct a2l_data *a2l = dso->a2l;
370 dso->a2l = NULL;
622 static int inline_list__append_record(struct dso *dso,
629 struct symbol *inline_sym = new_inline_sym(dso, sym, function);
636 struct dso *dso,
641 struct child_process *a2l = dso->a2l;
658 dso->a2l = addr2line_subprocess_init(symbol_conf.addr2line_path, dso_name);
659 a2l = dso->a2l;
735 if (node && inline_list__append_record(dso, node, sym,
758 if (inline_list__append_record(dso, node, sym,
773 dso->a2l = NULL;
779 void dso__free_a2l(struct dso *dso)
781 struct child_process *a2l = dso->a2l;
788 dso->a2l = NULL;
794 struct dso *dso, struct symbol *sym)
807 addr2line(dso_name, addr, NULL, NULL, dso, true, node, sym);
813 * dso.
817 char *__get_srcline(struct dso *dso, u64 addr, struct symbol *sym,
826 if (!dso->has_srcline)
829 dso_name = dso__name(dso);
833 if (!addr2line(dso_name, addr, &file, &line, dso,
843 dso->a2l_fails = 0;
848 if (dso->a2l_fails && ++dso->a2l_fails > A2L_FAIL_LIMIT) {
849 dso->has_srcline = 0;
850 dso__free_a2l(dso);
861 } else if (asprintf(&srcline, "%s[%" PRIx64 "]", dso->short_name, addr) < 0)
867 char *get_srcline_split(struct dso *dso, u64 addr, unsigned *line)
872 if (!dso->has_srcline)
875 dso_name = dso__name(dso);
879 if (!addr2line(dso_name, addr, &file, line, dso, true, NULL, NULL))
882 dso->a2l_fails = 0;
886 if (dso->a2l_fails && ++dso->a2l_fails > A2L_FAIL_LIMIT) {
887 dso->has_srcline = 0;
888 dso__free_a2l(dso);
905 char *get_srcline(struct dso *dso, u64 addr, struct symbol *sym,
908 return __get_srcline(dso, addr, sym, show_sym, show_addr, false, ip);
980 struct inline_node *dso__parse_addr_inlines(struct dso *dso, u64 addr,
985 dso_name = dso__name(dso);
989 return addr2inlines(dso_name, addr, dso, sym);