Lines Matching refs:pp
73 static char *synthesize_perf_probe_point(struct perf_probe_point *pp);
274 static void clear_perf_probe_point(struct perf_probe_point *pp) in clear_perf_probe_point() argument
276 free(pp->file); in clear_perf_probe_point()
277 free(pp->function); in clear_perf_probe_point()
278 free(pp->lazy_line); in clear_perf_probe_point()
296 struct perf_probe_point *pp, in find_alternative_probe_point() argument
306 if (!pp->function || pp->file) in find_alternative_probe_point()
314 map__for_each_symbol_by_name(map, pp->function, sym) { in find_alternative_probe_point()
326 pp->function, address); in find_alternative_probe_point()
333 result->offset += pp->offset; in find_alternative_probe_point()
334 result->line += pp->line; in find_alternative_probe_point()
335 result->retprobe = pp->retprobe; in find_alternative_probe_point()
366 struct perf_probe_point pp = { .function = lr->function, in get_alternative_line_range() local
376 ret = find_alternative_probe_point(dinfo, &pp, &result, in get_alternative_line_range()
384 clear_perf_probe_point(&pp); in get_alternative_line_range()
449 struct perf_probe_point *pp, in find_perf_probe_point_from_dwarf() argument
480 (unsigned long)addr, pp); in find_perf_probe_point_from_dwarf()
486 pp->retprobe = tp->retprobe; in find_perf_probe_point_from_dwarf()
912 struct perf_probe_point *pp __maybe_unused, in find_perf_probe_point_from_dwarf()
1077 struct perf_probe_point *pp = &pev->point; in parse_perf_probe_point() local
1122 pp->file = tmp; in parse_perf_probe_point()
1124 pp->function = tmp; in parse_perf_probe_point()
1131 pp->lazy_line = strdup(arg); in parse_perf_probe_point()
1132 if (pp->lazy_line == NULL) in parse_perf_probe_point()
1143 pp->line = strtoul(arg, &tmp, 0); in parse_perf_probe_point()
1151 pp->offset = strtoul(arg, &tmp, 0); in parse_perf_probe_point()
1159 if (pp->file) { in parse_perf_probe_point()
1163 pp->file = strdup(arg); in parse_perf_probe_point()
1164 if (pp->file == NULL) in parse_perf_probe_point()
1169 pp->retprobe = 1; in parse_perf_probe_point()
1184 if (pp->lazy_line && pp->line) { in parse_perf_probe_point()
1190 if (pp->lazy_line && pp->offset) { in parse_perf_probe_point()
1195 if (pp->line && pp->offset) { in parse_perf_probe_point()
1200 if (!pp->line && !pp->lazy_line && pp->file && !pp->function) { in parse_perf_probe_point()
1206 if (pp->offset && !pp->function) { in parse_perf_probe_point()
1211 if (pp->retprobe && !pp->function) { in parse_perf_probe_point()
1216 if ((pp->offset || pp->line || pp->lazy_line) && pp->retprobe) { in parse_perf_probe_point()
1223 pp->function, pp->file, pp->line, pp->offset, pp->retprobe, in parse_perf_probe_point()
1224 pp->lazy_line); in parse_perf_probe_point()
1530 static char *synthesize_perf_probe_point(struct perf_probe_point *pp) in synthesize_perf_probe_point() argument
1541 if (pp->offset) { in synthesize_perf_probe_point()
1542 ret = e_snprintf(offs, 32, "+%lu", pp->offset); in synthesize_perf_probe_point()
1546 if (pp->line) { in synthesize_perf_probe_point()
1547 ret = e_snprintf(line, 32, ":%d", pp->line); in synthesize_perf_probe_point()
1551 if (pp->file) { in synthesize_perf_probe_point()
1552 tmp = pp->file; in synthesize_perf_probe_point()
1555 tmp = strchr(pp->file + len - 30, '/'); in synthesize_perf_probe_point()
1556 tmp = tmp ? tmp + 1 : pp->file + len - 30; in synthesize_perf_probe_point()
1563 if (pp->function) in synthesize_perf_probe_point()
1564 ret = e_snprintf(buf, MAX_CMDLEN, "%s%s%s%s%s", pp->function, in synthesize_perf_probe_point()
1565 offs, pp->retprobe ? "%return" : "", line, in synthesize_perf_probe_point()
1734 struct perf_probe_point *pp, in find_perf_probe_point_from_map() argument
1758 pp->retprobe = tp->retprobe; in find_perf_probe_point_from_map()
1759 pp->offset = addr - map->unmap_ip(map, sym->start); in find_perf_probe_point_from_map()
1760 pp->function = strdup(sym->name); in find_perf_probe_point_from_map()
1761 ret = pp->function ? 0 : -ENOMEM; in find_perf_probe_point_from_map()
1773 struct perf_probe_point *pp, in convert_to_perf_probe_point() argument
1779 ret = find_perf_probe_point_from_dwarf(tp, pp, is_kprobe); in convert_to_perf_probe_point()
1782 ret = find_perf_probe_point_from_map(tp, pp, is_kprobe); in convert_to_perf_probe_point()
1789 pp->function = strdup(tp->symbol); in convert_to_perf_probe_point()
1790 pp->offset = tp->offset; in convert_to_perf_probe_point()
1795 pp->function = strdup(buf); in convert_to_perf_probe_point()
1796 pp->offset = 0; in convert_to_perf_probe_point()
1798 if (pp->function == NULL) in convert_to_perf_probe_point()
1801 pp->retprobe = tp->retprobe; in convert_to_perf_probe_point()
2464 struct perf_probe_point *pp = &pev->point; in find_probe_trace_events_from_map() local
2479 num_matched_functions = find_probe_functions(map, pp->function); in find_probe_trace_events_from_map()
2481 pr_err("Failed to find symbol %s in %s\n", pp->function, in find_probe_trace_events_from_map()
2492 if (!pev->uprobes && !pp->retprobe) { in find_probe_trace_events_from_map()
2510 map__for_each_symbol_by_name(map, pp->function, sym) { in find_probe_trace_events_from_map()
2519 if (pp->offset > sym->end - sym->start) { in find_probe_trace_events_from_map()
2521 pp->offset, sym->name); in find_probe_trace_events_from_map()
2526 tp->address = map->unmap_ip(map, sym->start) + pp->offset; in find_probe_trace_events_from_map()
2532 tp->offset = pp->offset; in find_probe_trace_events_from_map()
2534 tp->retprobe = pp->retprobe; in find_probe_trace_events_from_map()