Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 269013
b: refs/heads/master
c: 7a6f205
h: refs/heads/master
i:
  269011: 51f5e2b
v: v3
  • Loading branch information
Arnaldo Carvalho de Melo committed Sep 29, 2011
1 parent 1d8f735 commit 4c4970b
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 5 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: f2add9cd66c87baea6762b099ee38ee742207699
refs/heads/master: 7a6f205d623afaf05aee387aa6bc57fa43421061
3 changes: 2 additions & 1 deletion trunk/tools/perf/Documentation/perf-buildid-list.txt
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@ This command displays the buildids found in a perf.data file, so that other
tools can be used to fetch packages with matching symbol tables for use by
perf report.

It can also be used to show the build id of the running kernel.
It can also be used to show the build id of the running kernel or in an ELF
file using -i/--input.

OPTIONS
-------
Expand Down
27 changes: 24 additions & 3 deletions trunk/tools/perf/builtin-buildid-list.c
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
/*
* builtin-buildid-list.c
*
* Builtin buildid-list command: list buildids in perf.data or in the running
* kernel.
* Builtin buildid-list command: list buildids in perf.data, in the running
* kernel and in ELF files.
*
* Copyright (C) 2009, Red Hat Inc.
* Copyright (C) 2009, Arnaldo Carvalho de Melo <acme@redhat.com>
Expand All @@ -16,6 +16,8 @@
#include "util/session.h"
#include "util/symbol.h"

#include <libelf.h>

static char const *input_name = "perf.data";
static bool force;
static bool show_kernel;
Expand Down Expand Up @@ -70,12 +72,31 @@ static int sysfs__fprintf_build_id(FILE *fp)
return 0;
}

static int __cmd_buildid_list(void)
static int filename__fprintf_build_id(const char *name, FILE *fp)
{
u8 build_id[BUILD_ID_SIZE];
char sbuild_id[BUILD_ID_SIZE * 2 + 1];

if (filename__read_build_id(name, build_id,
sizeof(build_id)) != sizeof(build_id))
return 0;

build_id__sprintf(build_id, sizeof(build_id), sbuild_id);
return fprintf(fp, "%s\n", sbuild_id);
}

static int __cmd_buildid_list(void)
{
if (show_kernel)
return sysfs__fprintf_build_id(stdout);

elf_version(EV_CURRENT);
/*
* See if this is an ELF file first:
*/
if (filename__fprintf_build_id(input_name, stdout))
return 0;

return perf_session__list_build_ids();
}

Expand Down

0 comments on commit 4c4970b

Please sign in to comment.