Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f69b64f7 authored by Andi Kleen's avatar Andi Kleen Committed by Arnaldo Carvalho de Melo
Browse files

perf: Support setting the disassembler style

Add -M option to report/annotate to pass directly to objdump.  This
allows to use -M intel for intel style disassembler syntax, which is
useful for people who are very used to the Intel syntax.

Link: http://lkml.kernel.org/r/1316122302-24306-2-git-send-email-andi@firstfloor.org


[committer note: Add missing Documentation bits, fixup conflicts with 3e6a2a7f]
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Stephane Eranian <eranian@google.com>
Signed-off-by: default avatarAndi Kleen <ak@linux.intel.com>
Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent 33e49ea7
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -83,6 +83,9 @@ OPTIONS
--symfs=<directory>::
        Look for files with symbols relative to this directory.

-M::
--disassembler-style=:: Set disassembler style for objdump.

SEE ALSO
--------
linkperf:perf-record[1], linkperf:perf-report[1]
+3 −0
Original line number Diff line number Diff line
@@ -134,6 +134,9 @@ OPTIONS
	CPUs are specified with -: 0-2. Default is to report samples on all
	CPUs.

-M::
--disassembler-style=:: Set disassembler style for objdump.

SEE ALSO
--------
linkperf:perf-stat[1]
+2 −0
Original line number Diff line number Diff line
@@ -273,6 +273,8 @@ static const struct option options[] = {
		    "Interleave source code with assembly code (default)"),
	OPT_BOOLEAN('0', "asm-raw", &symbol_conf.annotate_asm_raw,
		    "Display raw encoding of assembly instructions (default)"),
	OPT_STRING('M', "disassembler-style", &disassembler_style, "disassembler style",
		   "Specify disassembler style (e.g. -M intel for intel syntax)"),
	OPT_END()
};

+2 −0
Original line number Diff line number Diff line
@@ -487,6 +487,8 @@ static const struct option options[] = {
	OPT_STRING(0, "symfs", &symbol_conf.symfs, "directory",
		    "Look for files with symbols relative to this directory"),
	OPT_STRING('c', "cpu", &cpu_list, "cpu", "list of cpus to profile"),
	OPT_STRING('M', "disassembler-style", &disassembler_style, "disassembler style",
		   "Specify disassembler style (e.g. -M intel for intel syntax)"),
	OPT_END()
};

+5 −1
Original line number Diff line number Diff line
@@ -16,6 +16,8 @@
#include "annotate.h"
#include <pthread.h>

const char 	*disassembler_style;

int symbol__annotate_init(struct map *map __used, struct symbol *sym)
{
	struct annotation *notes = symbol__annotation(sym);
@@ -323,9 +325,11 @@ fallback:
		 dso, dso->long_name, sym, sym->name);

	snprintf(command, sizeof(command),
		 "objdump --start-address=0x%016" PRIx64
		 "objdump %s%s --start-address=0x%016" PRIx64
		 " --stop-address=0x%016" PRIx64
		 " -d %s %s -C %s|grep -v %s|expand",
		 disassembler_style ? "-M " : "",
		 disassembler_style ? disassembler_style : "",
		 map__rip_2objdump(map, sym->start),
		 map__rip_2objdump(map, sym->end),
		 symbol_conf.annotate_asm_raw ? "" : "--no-show-raw",
Loading