• Home
  • Raw
  • Download

Lines Matching refs:tp

575 static int find_perf_probe_point_from_dwarf(struct probe_trace_point *tp,  in find_perf_probe_point_from_dwarf()  argument
581 u64 addr = tp->address; in find_perf_probe_point_from_dwarf()
590 ret = get_text_start_address(tp->module, &stext, NULL); in find_perf_probe_point_from_dwarf()
594 } else if (tp->symbol) { in find_perf_probe_point_from_dwarf()
596 ret = kernel_get_symbol_address_by_name(tp->symbol, &addr, in find_perf_probe_point_from_dwarf()
597 false, !!tp->module); in find_perf_probe_point_from_dwarf()
600 addr += tp->offset; in find_perf_probe_point_from_dwarf()
604 tp->module ? : "kernel"); in find_perf_probe_point_from_dwarf()
606 dinfo = debuginfo_cache__open(tp->module, verbose <= 0); in find_perf_probe_point_from_dwarf()
614 pp->retprobe = tp->retprobe; in find_perf_probe_point_from_dwarf()
623 static int post_process_probe_trace_point(struct probe_trace_point *tp, in post_process_probe_trace_point() argument
627 u64 addr = tp->address - offs; in post_process_probe_trace_point()
633 if (strcmp(sym->name, tp->symbol)) { in post_process_probe_trace_point()
635 if (!tp->realname) in post_process_probe_trace_point()
636 tp->realname = tp->symbol; in post_process_probe_trace_point()
638 free(tp->symbol); in post_process_probe_trace_point()
639 tp->symbol = strdup(sym->name); in post_process_probe_trace_point()
640 if (!tp->symbol) in post_process_probe_trace_point()
643 tp->offset = addr - sym->start; in post_process_probe_trace_point()
644 tp->address -= offs; in post_process_probe_trace_point()
1154 find_perf_probe_point_from_dwarf(struct probe_trace_point *tp __maybe_unused, in find_perf_probe_point_from_dwarf()
1744 struct probe_trace_point *tp = &tev->point; in parse_probe_trace_command() local
1786 tp->retprobe = (pr == 'r'); in parse_probe_trace_command()
1791 tp->module = strndup(argv[1], p - argv[1]); in parse_probe_trace_command()
1792 if (!tp->module) { in parse_probe_trace_command()
1796 tev->uprobes = (tp->module[0] == '/'); in parse_probe_trace_command()
1815 tp->address = 0; in parse_probe_trace_command()
1824 tp->address = strtoul(fmt1_str, NULL, 0); in parse_probe_trace_command()
1827 tp->symbol = strdup(fmt1_str); in parse_probe_trace_command()
1828 if (tp->symbol == NULL) { in parse_probe_trace_command()
1834 tp->offset = 0; in parse_probe_trace_command()
1836 tp->offset = strtoul(fmt2_str, NULL, 10); in parse_probe_trace_command()
1842 tp->ref_ctr_offset = strtoul(fmt2_str + 1, NULL, 0); in parse_probe_trace_command()
2041 struct probe_trace_point *tp = &tev->point; in synthesize_uprobe_trace_def() local
2044 err = strbuf_addf(buf, "%s:0x%lx", tp->module, tp->address); in synthesize_uprobe_trace_def()
2046 if (err >= 0 && tp->ref_ctr_offset) { in synthesize_uprobe_trace_def()
2049 err = strbuf_addf(buf, "(0x%lx)", tp->ref_ctr_offset); in synthesize_uprobe_trace_def()
2056 struct probe_trace_point *tp = &tev->point; in synthesize_probe_trace_command() local
2062 if (tev->uprobes && !tp->module) in synthesize_probe_trace_command()
2068 if (strbuf_addf(&buf, "%c:%s/%s ", tp->retprobe ? 'r' : 'p', in synthesize_probe_trace_command()
2077 if (tev->uprobes && !tp->address) { in synthesize_probe_trace_command()
2078 if (!tp->symbol || strcmp(tp->symbol, "0x0")) in synthesize_probe_trace_command()
2085 } else if (!strncmp(tp->symbol, "0x", 2)) { in synthesize_probe_trace_command()
2087 err = strbuf_addf(&buf, "%s%s0x%lx", tp->module ?: "", in synthesize_probe_trace_command()
2088 tp->module ? ":" : "", tp->address); in synthesize_probe_trace_command()
2090 err = strbuf_addf(&buf, "%s%s%s+%lu", tp->module ?: "", in synthesize_probe_trace_command()
2091 tp->module ? ":" : "", tp->symbol, tp->offset); in synthesize_probe_trace_command()
2107 static int find_perf_probe_point_from_map(struct probe_trace_point *tp, in find_perf_probe_point_from_map() argument
2113 u64 addr = tp->address; in find_perf_probe_point_from_map()
2117 map = dso__new_map(tp->module); in find_perf_probe_point_from_map()
2122 if (tp->symbol && !addr) { in find_perf_probe_point_from_map()
2123 if (kernel_get_symbol_address_by_name(tp->symbol, in find_perf_probe_point_from_map()
2128 addr += tp->offset; in find_perf_probe_point_from_map()
2136 pp->retprobe = tp->retprobe; in find_perf_probe_point_from_map()
2149 static int convert_to_perf_probe_point(struct probe_trace_point *tp, in convert_to_perf_probe_point() argument
2156 ret = find_perf_probe_point_from_dwarf(tp, pp, is_kprobe); in convert_to_perf_probe_point()
2159 ret = find_perf_probe_point_from_map(tp, pp, is_kprobe); in convert_to_perf_probe_point()
2165 if (tp->symbol) { in convert_to_perf_probe_point()
2166 pp->function = strdup(tp->symbol); in convert_to_perf_probe_point()
2167 pp->offset = tp->offset; in convert_to_perf_probe_point()
2169 ret = e_snprintf(buf, 128, "0x%" PRIx64, (u64)tp->address); in convert_to_perf_probe_point()
2178 pp->retprobe = tp->retprobe; in convert_to_perf_probe_point()
2677 struct probe_trace_point *tp = &tev->point; in warn_uprobe_event_compat() local
2679 if (tp->ref_ctr_offset && !uprobe_ref_ctr_is_supported()) { in warn_uprobe_event_compat()
2900 struct probe_trace_point *tp; in find_probe_trace_events_from_map() local
2961 tp = &tev->point; in find_probe_trace_events_from_map()
2975 tp->address = map->unmap_ip(map, sym->start) + pp->offset; in find_probe_trace_events_from_map()
2979 kprobe_warn_out_range(sym->name, tp->address)) { in find_probe_trace_events_from_map()
2980 tp->symbol = NULL; /* Skip it */ in find_probe_trace_events_from_map()
2983 tp->symbol = strdup_or_goto(reloc_sym->name, nomem_out); in find_probe_trace_events_from_map()
2984 tp->offset = tp->address - reloc_sym->addr; in find_probe_trace_events_from_map()
2986 tp->symbol = strdup_or_goto(sym->name, nomem_out); in find_probe_trace_events_from_map()
2987 tp->offset = pp->offset; in find_probe_trace_events_from_map()
2989 tp->realname = strdup_or_goto(sym->name, nomem_out); in find_probe_trace_events_from_map()
2991 tp->retprobe = pp->retprobe; in find_probe_trace_events_from_map()
3051 struct probe_trace_point *tp; in try_to_find_absolute_address() local
3070 tp = &tev->point; in try_to_find_absolute_address()
3077 tp->address = pev->point.abs_address; in try_to_find_absolute_address()
3078 tp->retprobe = pp->retprobe; in try_to_find_absolute_address()
3087 if (asprintf(&tp->symbol, "0x%lx", tp->address) < 0) in try_to_find_absolute_address()
3098 if (asprintf(&tp->realname, "abs_%lx", tp->address) < 0) in try_to_find_absolute_address()
3102 tp->module = strdup(pev->target); in try_to_find_absolute_address()
3103 if (!tp->module) in try_to_find_absolute_address()