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

Commit 7a4ec938 authored by Maciek Borzecki's avatar Maciek Borzecki Committed by Arnaldo Carvalho de Melo
Browse files

perf tools: Allow user to indicate path to objdump in command line



When analyzing perf data from hosts of other architecture than one of
the local host it's useful to call objdump that is part of a toolchain
for that architecture. Instead of calling regular objdump, call one that
user specified in command line.

Signed-off-by: default avatarMaciek Borzecki <maciek.borzecki@gmail.com>
Acked-by: default avatarDavid Ahern <dsahern@gmail.com>
Link: http://lkml.kernel.org/r/1346754750.16299.3.camel@localhost.localdomain


Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent 60ff92f5
Loading
Loading
Loading
Loading
+3 −0
Original line number Original line Diff line number Diff line
@@ -85,6 +85,9 @@ OPTIONS
-M::
-M::
--disassembler-style=:: Set disassembler style for objdump.
--disassembler-style=:: Set disassembler style for objdump.


--objdump=<path>::
        Path to objdump binary.

SEE ALSO
SEE ALSO
--------
--------
linkperf:perf-record[1], linkperf:perf-report[1]
linkperf:perf-record[1], linkperf:perf-report[1]
+3 −0
Original line number Original line Diff line number Diff line
@@ -168,6 +168,9 @@ OPTIONS
	branch stacks and it will automatically switch to the branch view mode,
	branch stacks and it will automatically switch to the branch view mode,
	unless --no-branch-stack is used.
	unless --no-branch-stack is used.


--objdump=<path>::
        Path to objdump binary.

SEE ALSO
SEE ALSO
--------
--------
linkperf:perf-stat[1], linkperf:perf-annotate[1]
linkperf:perf-stat[1], linkperf:perf-annotate[1]
+2 −0
Original line number Original line Diff line number Diff line
@@ -282,6 +282,8 @@ int cmd_annotate(int argc, const char **argv, const char *prefix __used)
		    "Display raw encoding of assembly instructions (default)"),
		    "Display raw encoding of assembly instructions (default)"),
	OPT_STRING('M', "disassembler-style", &disassembler_style, "disassembler style",
	OPT_STRING('M', "disassembler-style", &disassembler_style, "disassembler style",
		   "Specify disassembler style (e.g. -M intel for intel syntax)"),
		   "Specify disassembler style (e.g. -M intel for intel syntax)"),
	OPT_STRING(0, "objdump", &objdump_path, "path",
		   "objdump binary to use for disassembly and annotations"),
	OPT_END()
	OPT_END()
	};
	};


+2 −0
Original line number Original line Diff line number Diff line
@@ -638,6 +638,8 @@ int cmd_report(int argc, const char **argv, const char *prefix __used)
		    "Show a column with the sum of periods"),
		    "Show a column with the sum of periods"),
	OPT_CALLBACK_NOOPT('b', "branch-stack", &sort__branch_mode, "",
	OPT_CALLBACK_NOOPT('b', "branch-stack", &sort__branch_mode, "",
		    "use branch records for histogram filling", parse_branch_mode),
		    "use branch records for histogram filling", parse_branch_mode),
	OPT_STRING(0, "objdump", &objdump_path, "path",
		   "objdump binary to use for disassembly and annotations"),
	OPT_END()
	OPT_END()
	};
	};


+3 −1
Original line number Original line Diff line number Diff line
@@ -17,6 +17,7 @@
#include <pthread.h>
#include <pthread.h>


const char 	*disassembler_style;
const char 	*disassembler_style;
const char	*objdump_path;


static struct ins *ins__find(const char *name);
static struct ins *ins__find(const char *name);
static int disasm_line__parse(char *line, char **namep, char **rawp);
static int disasm_line__parse(char *line, char **namep, char **rawp);
@@ -820,9 +821,10 @@ fallback:
		 dso, dso->long_name, sym, sym->name);
		 dso, dso->long_name, sym, sym->name);


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