Lines Matching refs:tp
663 static int find_perf_probe_point_from_dwarf(struct probe_trace_point *tp, in find_perf_probe_point_from_dwarf() argument
669 u64 addr = tp->address; in find_perf_probe_point_from_dwarf()
678 ret = get_text_start_address(tp->module, &stext, NULL); in find_perf_probe_point_from_dwarf()
682 } else if (tp->symbol) { in find_perf_probe_point_from_dwarf()
684 ret = kernel_get_symbol_address_by_name(tp->symbol, &addr, in find_perf_probe_point_from_dwarf()
685 false, !!tp->module); in find_perf_probe_point_from_dwarf()
688 addr += tp->offset; in find_perf_probe_point_from_dwarf()
692 tp->module ? : "kernel"); in find_perf_probe_point_from_dwarf()
694 dinfo = debuginfo_cache__open(tp->module, verbose <= 0); in find_perf_probe_point_from_dwarf()
701 pp->retprobe = tp->retprobe; in find_perf_probe_point_from_dwarf()
710 static int post_process_probe_trace_point(struct probe_trace_point *tp, in post_process_probe_trace_point() argument
714 u64 addr = tp->address - offs; in post_process_probe_trace_point()
725 if (strcmp(sym->name, tp->symbol)) { in post_process_probe_trace_point()
727 if (!tp->realname) in post_process_probe_trace_point()
728 tp->realname = tp->symbol; in post_process_probe_trace_point()
730 free(tp->symbol); in post_process_probe_trace_point()
731 tp->symbol = strdup(sym->name); in post_process_probe_trace_point()
732 if (!tp->symbol) in post_process_probe_trace_point()
735 tp->offset = addr - sym->start; in post_process_probe_trace_point()
736 tp->address -= offs; in post_process_probe_trace_point()
1283 find_perf_probe_point_from_dwarf(struct probe_trace_point *tp __maybe_unused, in find_perf_probe_point_from_dwarf()
1901 struct probe_trace_point *tp = &tev->point; in parse_probe_trace_command() local
1943 tp->retprobe = (pr == 'r'); in parse_probe_trace_command()
1948 tp->module = strndup(argv[1], p - argv[1]); in parse_probe_trace_command()
1949 if (!tp->module) { in parse_probe_trace_command()
1953 tev->uprobes = (tp->module[0] == '/'); in parse_probe_trace_command()
1972 tp->address = 0; in parse_probe_trace_command()
1981 tp->address = strtoull(fmt1_str, NULL, 0); in parse_probe_trace_command()
1984 tp->symbol = strdup(fmt1_str); in parse_probe_trace_command()
1985 if (tp->symbol == NULL) { in parse_probe_trace_command()
1991 tp->offset = 0; in parse_probe_trace_command()
1993 tp->offset = strtoul(fmt2_str, NULL, 10); in parse_probe_trace_command()
1999 tp->ref_ctr_offset = strtoul(fmt2_str + 1, NULL, 0); in parse_probe_trace_command()
2214 synthesize_uprobe_trace_def(struct probe_trace_point *tp, struct strbuf *buf) in synthesize_uprobe_trace_def() argument
2219 if (!tp->module) in synthesize_uprobe_trace_def()
2227 if (!tp->address && (!tp->symbol || strcmp(tp->symbol, "0x0"))) in synthesize_uprobe_trace_def()
2231 err = strbuf_addf(buf, "%s:0x%" PRIx64, tp->module, tp->address); in synthesize_uprobe_trace_def()
2233 if (err >= 0 && tp->ref_ctr_offset) { in synthesize_uprobe_trace_def()
2236 err = strbuf_addf(buf, "(0x%lx)", tp->ref_ctr_offset); in synthesize_uprobe_trace_def()
2242 synthesize_kprobe_trace_def(struct probe_trace_point *tp, struct strbuf *buf) in synthesize_kprobe_trace_def() argument
2244 if (!strncmp(tp->symbol, "0x", 2)) { in synthesize_kprobe_trace_def()
2246 return strbuf_addf(buf, "%s%s0x%" PRIx64, tp->module ?: "", in synthesize_kprobe_trace_def()
2247 tp->module ? ":" : "", tp->address); in synthesize_kprobe_trace_def()
2249 return strbuf_addf(buf, "%s%s%s+%lu", tp->module ?: "", in synthesize_kprobe_trace_def()
2250 tp->module ? ":" : "", tp->symbol, tp->offset); in synthesize_kprobe_trace_def()
2256 struct probe_trace_point *tp = &tev->point; in synthesize_probe_trace_command() local
2264 if (strbuf_addf(&buf, "%c:%s/%s ", tp->retprobe ? 'r' : 'p', in synthesize_probe_trace_command()
2269 err = synthesize_uprobe_trace_def(tp, &buf); in synthesize_probe_trace_command()
2271 err = synthesize_kprobe_trace_def(tp, &buf); in synthesize_probe_trace_command()
2283 static int find_perf_probe_point_from_map(struct probe_trace_point *tp, in find_perf_probe_point_from_map() argument
2289 u64 addr = tp->address; in find_perf_probe_point_from_map()
2293 map = dso__new_map(tp->module); in find_perf_probe_point_from_map()
2298 if (tp->symbol && !addr) { in find_perf_probe_point_from_map()
2299 if (kernel_get_symbol_address_by_name(tp->symbol, in find_perf_probe_point_from_map()
2304 addr += tp->offset; in find_perf_probe_point_from_map()
2312 pp->retprobe = tp->retprobe; in find_perf_probe_point_from_map()
2323 static int convert_to_perf_probe_point(struct probe_trace_point *tp, in convert_to_perf_probe_point() argument
2330 ret = find_perf_probe_point_from_dwarf(tp, pp, is_kprobe); in convert_to_perf_probe_point()
2333 ret = find_perf_probe_point_from_map(tp, pp, is_kprobe); in convert_to_perf_probe_point()
2339 if (tp->symbol) { in convert_to_perf_probe_point()
2340 pp->function = strdup(tp->symbol); in convert_to_perf_probe_point()
2341 pp->offset = tp->offset; in convert_to_perf_probe_point()
2343 ret = e_snprintf(buf, 128, "0x%" PRIx64, tp->address); in convert_to_perf_probe_point()
2352 pp->retprobe = tp->retprobe; in convert_to_perf_probe_point()
2870 struct probe_trace_point *tp = &tev->point; in warn_uprobe_event_compat() local
2872 if (tp->ref_ctr_offset && !uprobe_ref_ctr_is_supported()) { in warn_uprobe_event_compat()
3124 struct probe_trace_point *tp; in find_probe_trace_events_from_map() local
3206 tp = &tev->point; in find_probe_trace_events_from_map()
3220 tp->address = map__unmap_ip(map, sym->start) + pp->offset; in find_probe_trace_events_from_map()
3224 kprobe_warn_out_range(sym->name, tp->address)) { in find_probe_trace_events_from_map()
3225 tp->symbol = NULL; /* Skip it */ in find_probe_trace_events_from_map()
3228 tp->symbol = strdup_or_goto(reloc_sym->name, nomem_out); in find_probe_trace_events_from_map()
3229 tp->offset = tp->address - reloc_sym->addr; in find_probe_trace_events_from_map()
3231 tp->symbol = strdup_or_goto(sym->name, nomem_out); in find_probe_trace_events_from_map()
3232 tp->offset = pp->offset; in find_probe_trace_events_from_map()
3234 tp->realname = strdup_or_goto(sym->name, nomem_out); in find_probe_trace_events_from_map()
3236 tp->retprobe = pp->retprobe; in find_probe_trace_events_from_map()
3296 struct probe_trace_point *tp; in try_to_find_absolute_address() local
3315 tp = &tev->point; in try_to_find_absolute_address()
3322 tp->address = pev->point.abs_address; in try_to_find_absolute_address()
3323 tp->retprobe = pp->retprobe; in try_to_find_absolute_address()
3332 if (asprintf(&tp->symbol, "0x%" PRIx64, tp->address) < 0) in try_to_find_absolute_address()
3343 if (asprintf(&tp->realname, "abs_%" PRIx64, tp->address) < 0) in try_to_find_absolute_address()
3347 tp->module = strdup(pev->target); in try_to_find_absolute_address()
3348 if (!tp->module) in try_to_find_absolute_address()
3677 struct probe_trace_point *tp = &tev->point; in show_bootconfig_event() local
3685 err = synthesize_kprobe_trace_def(tp, &buf); in show_bootconfig_event()