static int perf_session__list_build_ids(void) { struct perf_session *session; elf_version(EV_CURRENT); session = perf_session__new(input_name, O_RDONLY, force, false, &build_id__mark_dso_hit_ops); if (session == NULL) return -1; /* * See if this is an ELF file first: */ if (filename__fprintf_build_id(session->filename, stdout)) goto out; if (with_hits) perf_session__process_events(session, &build_id__mark_dso_hit_ops); perf_session__fprintf_dsos_buildid(session, stdout, with_hits); out: perf_session__delete(session); return 0; }
static int perf_session__list_build_ids(bool force, bool with_hits) { struct perf_session *session; symbol__elf_init(); /* * See if this is an ELF file first: */ if (filename__fprintf_build_id(input_name, stdout)) goto out; session = perf_session__new(input_name, O_RDONLY, force, false, &build_id__mark_dso_hit_ops); if (session == NULL) return -1; /* * in pipe-mode, the only way to get the buildids is to parse * the record stream. Buildids are stored as RECORD_HEADER_BUILD_ID */ if (with_hits || session->fd_pipe) perf_session__process_events(session, &build_id__mark_dso_hit_ops); perf_session__fprintf_dsos_buildid(session, stdout, dso__skip_buildid, with_hits); perf_session__delete(session); out: return 0; }
static int build_id_cache__fprintf_missing(const char *filename, bool force, FILE *fp) { struct perf_data_file file = { .path = filename, .mode = PERF_DATA_MODE_READ, .force = force, }; struct perf_session *session = perf_session__new(&file, false, NULL); if (session == NULL) return -1; perf_session__fprintf_dsos_buildid(session, fp, dso__missing_buildid_cache, 0); perf_session__delete(session); return 0; }
static int perf_session__list_build_ids(void) { struct perf_session *session; session = perf_session__new(input_name, O_RDONLY, force, false, &build_id__mark_dso_hit_ops); if (session == NULL) return -1; if (with_hits) perf_session__process_events(session, &build_id__mark_dso_hit_ops); perf_session__fprintf_dsos_buildid(session, stdout, with_hits); perf_session__delete(session); return 0; }
static int __cmd_buildid_list(void) { int err = -1; struct perf_session *session; session = perf_session__new(input_name, O_RDONLY, force, false); if (session == NULL) return -1; if (with_hits) { symbol_conf.full_paths = true; perf_session__process_events(session, &build_id__mark_dso_hit_ops); } perf_session__fprintf_dsos_buildid(session, stdout, with_hits); perf_session__delete(session); return err; }
static int perf_session__list_build_ids(bool force, bool with_hits) { struct perf_session *session; struct perf_data_file file = { .path = input_name, .mode = PERF_DATA_MODE_READ, .force = force, }; symbol__elf_init(); /* * See if this is an ELF file first: */ if (filename__fprintf_build_id(input_name, stdout) > 0) goto out; session = perf_session__new(&file, false, &build_id__mark_dso_hit_ops); if (session == NULL) return -1; /* * We take all buildids when the file contains AUX area tracing data * because we do not decode the trace because it would take too long. */ if (!perf_data_file__is_pipe(&file) && perf_header__has_feat(&session->header, HEADER_AUXTRACE)) with_hits = false; /* * in pipe-mode, the only way to get the buildids is to parse * the record stream. Buildids are stored as RECORD_HEADER_BUILD_ID */ if (with_hits || perf_data_file__is_pipe(&file)) perf_session__process_events(session); perf_session__fprintf_dsos_buildid(session, stdout, dso__skip_buildid, with_hits); perf_session__delete(session); out: return 0; }
static int build_id_cache__fprintf_missing(struct perf_session *session, FILE *fp) { perf_session__fprintf_dsos_buildid(session, fp, dso__missing_buildid_cache, 0); return 0; }