Lines Matching refs:dso
30 static const char *dso__name(struct dso *dso) in dso__name() argument
34 if (dso->symsrc_filename) in dso__name()
35 dso_name = dso->symsrc_filename; in dso__name()
37 dso_name = dso->long_name; in dso__name()
92 static struct symbol *new_inline_sym(struct dso *dso, in new_inline_sym() argument
102 if (dso) { in new_inline_sym()
103 demangled = dso__demangle_sym(dso, 0, funcname); in new_inline_sym()
287 static int inline_list__append_dso_a2l(struct dso *dso, in inline_list__append_dso_a2l() argument
291 struct a2l_data *a2l = dso->a2l; in inline_list__append_dso_a2l()
292 struct symbol *inline_sym = new_inline_sym(dso, sym, a2l->funcname); in inline_list__append_dso_a2l()
302 char **file, unsigned int *line, struct dso *dso, in addr2line() argument
307 struct a2l_data *a2l = dso->a2l; in addr2line()
310 dso->a2l = addr2line_init(dso_name); in addr2line()
311 a2l = dso->a2l; in addr2line()
331 if (node && inline_list__append_dso_a2l(dso, node, sym)) in addr2line()
342 if (inline_list__append_dso_a2l(dso, node, sym)) in addr2line()
361 void dso__free_a2l(struct dso *dso) in dso__free_a2l() argument
363 struct a2l_data *a2l = dso->a2l; in dso__free_a2l()
370 dso->a2l = NULL; in dso__free_a2l()
620 static int inline_list__append_record(struct dso *dso, in inline_list__append_record() argument
627 struct symbol *inline_sym = new_inline_sym(dso, sym, function); in inline_list__append_record()
634 struct dso *dso, in addr2line() argument
639 struct child_process *a2l = dso->a2l; in addr2line()
656 dso->a2l = addr2line_subprocess_init(symbol_conf.addr2line_path, dso_name); in addr2line()
657 a2l = dso->a2l; in addr2line()
733 if (node && inline_list__append_record(dso, node, sym, in addr2line()
756 if (inline_list__append_record(dso, node, sym, in addr2line()
771 dso->a2l = NULL; in addr2line()
777 void dso__free_a2l(struct dso *dso) in dso__free_a2l() argument
779 struct child_process *a2l = dso->a2l; in dso__free_a2l()
786 dso->a2l = NULL; in dso__free_a2l()
792 struct dso *dso, struct symbol *sym) in addr2inlines() argument
805 addr2line(dso_name, addr, NULL, NULL, dso, true, node, sym); in addr2inlines()
815 char *__get_srcline(struct dso *dso, u64 addr, struct symbol *sym, in __get_srcline() argument
824 if (!dso->has_srcline) in __get_srcline()
827 dso_name = dso__name(dso); in __get_srcline()
831 if (!addr2line(dso_name, addr, &file, &line, dso, in __get_srcline()
841 dso->a2l_fails = 0; in __get_srcline()
846 if (dso->a2l_fails && ++dso->a2l_fails > A2L_FAIL_LIMIT) { in __get_srcline()
847 dso->has_srcline = 0; in __get_srcline()
848 dso__free_a2l(dso); in __get_srcline()
859 } else if (asprintf(&srcline, "%s[%" PRIx64 "]", dso->short_name, addr) < 0) in __get_srcline()
865 char *get_srcline_split(struct dso *dso, u64 addr, unsigned *line) in get_srcline_split() argument
870 if (!dso->has_srcline) in get_srcline_split()
873 dso_name = dso__name(dso); in get_srcline_split()
877 if (!addr2line(dso_name, addr, &file, line, dso, true, NULL, NULL)) in get_srcline_split()
880 dso->a2l_fails = 0; in get_srcline_split()
884 if (dso->a2l_fails && ++dso->a2l_fails > A2L_FAIL_LIMIT) { in get_srcline_split()
885 dso->has_srcline = 0; in get_srcline_split()
886 dso__free_a2l(dso); in get_srcline_split()
903 char *get_srcline(struct dso *dso, u64 addr, struct symbol *sym, in get_srcline() argument
906 return __get_srcline(dso, addr, sym, show_sym, show_addr, false, ip); in get_srcline()
978 struct inline_node *dso__parse_addr_inlines(struct dso *dso, u64 addr, in dso__parse_addr_inlines() argument
983 dso_name = dso__name(dso); in dso__parse_addr_inlines()
987 return addr2inlines(dso_name, addr, dso, sym); in dso__parse_addr_inlines()