Lines Matching refs:pev
360 struct perf_probe_event *pev, in get_alternative_probe_event() argument
365 memcpy(tmp, &pev->point, sizeof(*tmp)); in get_alternative_probe_event()
366 memset(&pev->point, 0, sizeof(pev->point)); in get_alternative_probe_event()
367 ret = find_alternative_probe_point(dinfo, tmp, &pev->point, in get_alternative_probe_event()
368 pev->target, pev->uprobes); in get_alternative_probe_event()
370 memcpy(&pev->point, tmp, sizeof(*tmp)); in get_alternative_probe_event()
663 static int try_to_find_probe_trace_events(struct perf_probe_event *pev, in try_to_find_probe_trace_events() argument
666 bool need_dwarf = perf_probe_event_need_dwarf(pev); in try_to_find_probe_trace_events()
671 dinfo = open_debuginfo(pev->target, !need_dwarf); in try_to_find_probe_trace_events()
681 ntevs = debuginfo__find_trace_events(dinfo, pev, tevs); in try_to_find_probe_trace_events()
684 ret = get_alternative_probe_event(dinfo, pev, &tmp); in try_to_find_probe_trace_events()
686 ntevs = debuginfo__find_trace_events(dinfo, pev, tevs); in try_to_find_probe_trace_events()
691 clear_perf_probe_point(&pev->point); in try_to_find_probe_trace_events()
692 memcpy(&pev->point, &tmp, sizeof(tmp)); in try_to_find_probe_trace_events()
701 pev->target, pev->uprobes); in try_to_find_probe_trace_events()
714 synthesize_perf_probe_point(&pev->point)); in try_to_find_probe_trace_events()
884 struct perf_probe_event *pev, in show_available_vars_at() argument
894 buf = synthesize_perf_probe_point(&pev->point); in show_available_vars_at()
899 ret = debuginfo__find_available_vars_at(dinfo, pev, &vls); in show_available_vars_at()
901 ret = get_alternative_probe_event(dinfo, pev, &tmp); in show_available_vars_at()
903 ret = debuginfo__find_available_vars_at(dinfo, pev, in show_available_vars_at()
991 static int try_to_find_probe_trace_events(struct perf_probe_event *pev, in try_to_find_probe_trace_events() argument
994 if (perf_probe_event_need_dwarf(pev)) { in try_to_find_probe_trace_events()
1149 static int parse_perf_probe_point(char *arg, struct perf_probe_event *pev) in parse_perf_probe_point() argument
1151 struct perf_probe_point *pp = &pev->point; in parse_perf_probe_point()
1178 pev->event = strdup(arg); in parse_perf_probe_point()
1179 if (pev->event == NULL) in parse_perf_probe_point()
1181 pev->group = NULL; in parse_perf_probe_point()
1442 int parse_perf_probe_command(const char *cmd, struct perf_probe_event *pev) in parse_perf_probe_command() argument
1458 ret = parse_perf_probe_point(argv[0], pev); in parse_perf_probe_command()
1463 pev->nargs = argc - 1; in parse_perf_probe_command()
1464 pev->args = zalloc(sizeof(struct perf_probe_arg) * pev->nargs); in parse_perf_probe_command()
1465 if (pev->args == NULL) { in parse_perf_probe_command()
1469 for (i = 0; i < pev->nargs && ret >= 0; i++) { in parse_perf_probe_command()
1470 ret = parse_perf_probe_arg(argv[i + 1], &pev->args[i]); in parse_perf_probe_command()
1472 is_c_varname(pev->args[i].var) && pev->point.retprobe) { in parse_perf_probe_command()
1485 bool perf_probe_event_need_dwarf(struct perf_probe_event *pev) in perf_probe_event_need_dwarf() argument
1489 if (pev->point.file || pev->point.line || pev->point.lazy_line) in perf_probe_event_need_dwarf()
1492 for (i = 0; i < pev->nargs; i++) in perf_probe_event_need_dwarf()
1493 if (is_c_varname(pev->args[i].var)) in perf_probe_event_need_dwarf()
1714 char *synthesize_perf_probe_command(struct perf_probe_event *pev)
1719 buf = synthesize_perf_probe_point(&pev->point);
1724 for (i = 0; i < pev->nargs; i++) {
1726 pev->args[i].name);
1959 struct perf_probe_event *pev, bool is_kprobe) in convert_to_perf_probe_event() argument
1965 pev->event = strdup(tev->event); in convert_to_perf_probe_event()
1966 pev->group = strdup(tev->group); in convert_to_perf_probe_event()
1967 if (pev->event == NULL || pev->group == NULL) in convert_to_perf_probe_event()
1971 ret = convert_to_perf_probe_point(&tev->point, &pev->point, is_kprobe); in convert_to_perf_probe_event()
1976 pev->nargs = tev->nargs; in convert_to_perf_probe_event()
1977 pev->args = zalloc(sizeof(struct perf_probe_arg) * pev->nargs); in convert_to_perf_probe_event()
1978 if (pev->args == NULL) in convert_to_perf_probe_event()
1982 pev->args[i].name = strdup(tev->args[i].name); in convert_to_perf_probe_event()
1986 pev->args[i].name = strdup(buf); in convert_to_perf_probe_event()
1988 if (pev->args[i].name == NULL && ret >= 0) in convert_to_perf_probe_event()
1993 clear_perf_probe_event(pev); in convert_to_perf_probe_event()
1998 void clear_perf_probe_event(struct perf_probe_event *pev) in clear_perf_probe_event() argument
2003 free(pev->event); in clear_perf_probe_event()
2004 free(pev->group); in clear_perf_probe_event()
2005 free(pev->target); in clear_perf_probe_event()
2006 clear_perf_probe_point(&pev->point); in clear_perf_probe_event()
2008 for (i = 0; i < pev->nargs; i++) { in clear_perf_probe_event()
2009 free(pev->args[i].name); in clear_perf_probe_event()
2010 free(pev->args[i].var); in clear_perf_probe_event()
2011 free(pev->args[i].type); in clear_perf_probe_event()
2012 field = pev->args[i].field; in clear_perf_probe_event()
2020 free(pev->args); in clear_perf_probe_event()
2021 memset(pev, 0, sizeof(*pev)); in clear_perf_probe_event()
2160 struct perf_probe_event *pev, in perf_probe_event__sprintf() argument
2169 place = synthesize_perf_probe_point(&pev->point); in perf_probe_event__sprintf()
2181 if (pev->nargs > 0) { in perf_probe_event__sprintf()
2183 for (i = 0; i < pev->nargs; i++) { in perf_probe_event__sprintf()
2184 ret = synthesize_perf_probe_arg(&pev->args[i], in perf_probe_event__sprintf()
2199 struct perf_probe_event *pev, in show_perf_probe_event() argument
2205 ret = perf_probe_event__sprintf(group, event, pev, module, &buf); in show_perf_probe_event()
2237 struct perf_probe_event pev; in __show_perf_probe_events() local
2242 memset(&pev, 0, sizeof(pev)); in __show_perf_probe_events()
2253 ret = convert_to_perf_probe_event(&tev, &pev, in __show_perf_probe_events()
2257 ret = show_perf_probe_event(pev.group, pev.event, in __show_perf_probe_events()
2258 &pev, tev.point.module, in __show_perf_probe_events()
2262 clear_perf_probe_event(&pev); in __show_perf_probe_events()
2378 struct perf_probe_event *pev, in probe_trace_event__set_name() argument
2386 if (pev->event) in probe_trace_event__set_name()
2387 event = pev->event; in probe_trace_event__set_name()
2389 if (pev->point.function && in probe_trace_event__set_name()
2390 (strncmp(pev->point.function, "0x", 2) != 0) && in probe_trace_event__set_name()
2391 !strisglob(pev->point.function)) in probe_trace_event__set_name()
2392 event = pev->point.function; in probe_trace_event__set_name()
2395 if (pev->group) in probe_trace_event__set_name()
2396 group = pev->group; in probe_trace_event__set_name()
2418 static int __add_probe_trace_events(struct perf_probe_event *pev, in __add_probe_trace_events() argument
2426 fd = probe_file__open(PF_FL_RW | (pev->uprobes ? PF_FL_UPROBE : 0)); in __add_probe_trace_events()
2446 ret = probe_trace_event__set_name(tev, pev, namelist, in __add_probe_trace_events()
2463 if (ret == -EINVAL && pev->uprobes) in __add_probe_trace_events()
2496 void __weak arch__fix_tev_from_maps(struct perf_probe_event *pev __maybe_unused, in arch__fix_tev_from_maps()
2504 static int find_probe_trace_events_from_map(struct perf_probe_event *pev, in find_probe_trace_events_from_map() argument
2512 struct perf_probe_point *pp = &pev->point; in find_probe_trace_events_from_map()
2517 map = get_target_map(pev->target, pev->uprobes); in find_probe_trace_events_from_map()
2536 pev->target ? : "kernel"); in find_probe_trace_events_from_map()
2541 pev->target ? : "kernel"); in find_probe_trace_events_from_map()
2547 if (!pev->uprobes && !pp->retprobe && !pev->target) { in find_probe_trace_events_from_map()
2586 if (!pev->uprobes && !pev->target && in find_probe_trace_events_from_map()
2600 if (pev->target) in find_probe_trace_events_from_map()
2601 tev->point.module = strdup_or_goto(pev->target, in find_probe_trace_events_from_map()
2603 tev->uprobes = pev->uprobes; in find_probe_trace_events_from_map()
2604 tev->nargs = pev->nargs; in find_probe_trace_events_from_map()
2612 if (pev->args[i].name) in find_probe_trace_events_from_map()
2614 strdup_or_goto(pev->args[i].name, in find_probe_trace_events_from_map()
2617 tev->args[i].value = strdup_or_goto(pev->args[i].var, in find_probe_trace_events_from_map()
2619 if (pev->args[i].type) in find_probe_trace_events_from_map()
2621 strdup_or_goto(pev->args[i].type, in find_probe_trace_events_from_map()
2624 arch__fix_tev_from_maps(pev, tev, map); in find_probe_trace_events_from_map()
2632 put_target_map(map, pev->uprobes); in find_probe_trace_events_from_map()
2644 static int try_to_find_absolute_address(struct perf_probe_event *pev, in try_to_find_absolute_address() argument
2647 struct perf_probe_point *pp = &pev->point; in try_to_find_absolute_address()
2652 if (!(pev->point.function && !strncmp(pev->point.function, "0x", 2))) in try_to_find_absolute_address()
2654 if (perf_probe_event_need_dwarf(pev)) in try_to_find_absolute_address()
2675 tp->address = pev->point.abs_address; in try_to_find_absolute_address()
2677 tev->uprobes = pev->uprobes; in try_to_find_absolute_address()
2699 if (pev->target) { in try_to_find_absolute_address()
2700 tp->module = strdup(pev->target); in try_to_find_absolute_address()
2706 tev->group = strdup(pev->group); in try_to_find_absolute_address()
2711 if (pev->event) { in try_to_find_absolute_address()
2712 tev->event = strdup(pev->event); in try_to_find_absolute_address()
2717 tev->nargs = pev->nargs; in try_to_find_absolute_address()
2724 copy_to_probe_trace_arg(&tev->args[i], &pev->args[i]); in try_to_find_absolute_address()
2738 static int convert_to_probe_trace_events(struct perf_probe_event *pev, in convert_to_probe_trace_events() argument
2743 if (pev->uprobes && !pev->group) { in convert_to_probe_trace_events()
2745 ret = convert_exec_to_group(pev->target, &pev->group); in convert_to_probe_trace_events()
2752 ret = try_to_find_absolute_address(pev, tevs); in convert_to_probe_trace_events()
2756 if (arch__prefers_symtab() && !perf_probe_event_need_dwarf(pev)) { in convert_to_probe_trace_events()
2757 ret = find_probe_trace_events_from_map(pev, tevs); in convert_to_probe_trace_events()
2763 ret = try_to_find_probe_trace_events(pev, tevs); in convert_to_probe_trace_events()
2767 return find_probe_trace_events_from_map(pev, tevs); in convert_to_probe_trace_events()