Lines Matching refs:dso
34 static const char *srcline_dso_name(struct dso *dso) in srcline_dso_name() argument
38 if (dso__symsrc_filename(dso)) in srcline_dso_name()
39 dso_name = dso__symsrc_filename(dso); in srcline_dso_name()
41 dso_name = dso__long_name(dso); in srcline_dso_name()
96 static struct symbol *new_inline_sym(struct dso *dso, in new_inline_sym() argument
106 if (dso) { in new_inline_sym()
107 demangled = dso__demangle_sym(dso, 0, funcname); in new_inline_sym()
152 char **file, unsigned int *line, struct dso *dso, in addr2line() argument
167 new_inline_sym(dso, sym, inline_frames[i].funcname); in addr2line()
185 void dso__free_a2l(struct dso *dso __maybe_unused) in dso__free_a2l()
344 static int inline_list__append_dso_a2l(struct dso *dso, in inline_list__append_dso_a2l() argument
348 struct a2l_data *a2l = dso__a2l(dso); in inline_list__append_dso_a2l()
349 struct symbol *inline_sym = new_inline_sym(dso, sym, a2l->funcname); in inline_list__append_dso_a2l()
359 char **file, unsigned int *line, struct dso *dso, in addr2line() argument
364 struct a2l_data *a2l = dso__a2l(dso); in addr2line()
368 dso__set_a2l(dso, a2l); in addr2line()
388 if (node && inline_list__append_dso_a2l(dso, node, sym)) in addr2line()
399 if (inline_list__append_dso_a2l(dso, node, sym)) in addr2line()
418 void dso__free_a2l(struct dso *dso) in dso__free_a2l() argument
420 struct a2l_data *a2l = dso__a2l(dso); in dso__free_a2l()
427 dso__set_a2l(dso, NULL); in dso__free_a2l()
679 static int inline_list__append_record(struct dso *dso, in inline_list__append_record() argument
686 struct symbol *inline_sym = new_inline_sym(dso, sym, function); in inline_list__append_record()
693 struct dso *dso, in addr2line() argument
698 struct child_process *a2l = dso__a2l(dso); in addr2line()
715 dso__set_a2l(dso, in addr2line()
717 a2l = dso__a2l(dso); in addr2line()
793 if (node && inline_list__append_record(dso, node, sym, in addr2line()
816 if (inline_list__append_record(dso, node, sym, in addr2line()
831 dso__set_a2l(dso, NULL); in addr2line()
837 void dso__free_a2l(struct dso *dso) in dso__free_a2l() argument
839 struct child_process *a2l = dso__a2l(dso); in dso__free_a2l()
846 dso__set_a2l(dso, NULL); in dso__free_a2l()
852 struct dso *dso, struct symbol *sym) in addr2inlines() argument
865 addr2line(dso_name, addr, NULL, NULL, dso, true, node, sym); in addr2inlines()
875 char *__get_srcline(struct dso *dso, u64 addr, struct symbol *sym, in __get_srcline() argument
884 if (!dso__has_srcline(dso)) in __get_srcline()
887 dso_name = srcline_dso_name(dso); in __get_srcline()
891 if (!addr2line(dso_name, addr, &file, &line, dso, in __get_srcline()
901 dso__set_a2l_fails(dso, 0); in __get_srcline()
906 dso__set_a2l_fails(dso, dso__a2l_fails(dso) + 1); in __get_srcline()
907 if (dso__a2l_fails(dso) > A2L_FAIL_LIMIT) { in __get_srcline()
908 dso__set_has_srcline(dso, false); in __get_srcline()
909 dso__free_a2l(dso); in __get_srcline()
920 } else if (asprintf(&srcline, "%s[%" PRIx64 "]", dso__short_name(dso), addr) < 0) in __get_srcline()
926 char *get_srcline_split(struct dso *dso, u64 addr, unsigned *line) in get_srcline_split() argument
931 if (!dso__has_srcline(dso)) in get_srcline_split()
934 dso_name = srcline_dso_name(dso); in get_srcline_split()
938 if (!addr2line(dso_name, addr, &file, line, dso, true, NULL, NULL)) in get_srcline_split()
941 dso__set_a2l_fails(dso, 0); in get_srcline_split()
945 dso__set_a2l_fails(dso, dso__a2l_fails(dso) + 1); in get_srcline_split()
946 if (dso__a2l_fails(dso) > A2L_FAIL_LIMIT) { in get_srcline_split()
947 dso__set_has_srcline(dso, false); in get_srcline_split()
948 dso__free_a2l(dso); in get_srcline_split()
965 char *get_srcline(struct dso *dso, u64 addr, struct symbol *sym, in get_srcline() argument
968 return __get_srcline(dso, addr, sym, show_sym, show_addr, false, ip); in get_srcline()
1040 struct inline_node *dso__parse_addr_inlines(struct dso *dso, u64 addr, in dso__parse_addr_inlines() argument
1045 dso_name = srcline_dso_name(dso); in dso__parse_addr_inlines()
1049 return addr2inlines(dso_name, addr, dso, sym); in dso__parse_addr_inlines()