Root/tools/perf/util/build-id.c

1/*
2 * build-id.c
3 *
4 * build-id support
5 *
6 * Copyright (C) 2009, 2010 Red Hat Inc.
7 * Copyright (C) 2009, 2010 Arnaldo Carvalho de Melo <acme@redhat.com>
8 */
9#include "build-id.h"
10#include "event.h"
11#include "symbol.h"
12#include <linux/kernel.h>
13
14static int build_id__mark_dso_hit(event_t *event, struct perf_session *session)
15{
16    struct addr_location al;
17    u8 cpumode = event->header.misc & PERF_RECORD_MISC_CPUMODE_MASK;
18    struct thread *thread = perf_session__findnew(session, event->ip.pid);
19
20    if (thread == NULL) {
21        pr_err("problem processing %d event, skipping it.\n",
22            event->header.type);
23        return -1;
24    }
25
26    thread__find_addr_map(thread, session, cpumode, MAP__FUNCTION,
27                  event->ip.ip, &al);
28
29    if (al.map != NULL)
30        al.map->dso->hit = 1;
31
32    return 0;
33}
34
35struct perf_event_ops build_id__mark_dso_hit_ops = {
36    .sample = build_id__mark_dso_hit,
37    .mmap = event__process_mmap,
38    .fork = event__process_task,
39};
40

Archive Download this file



interactive