linux/tools/perf/util
Namhyung Kim fc5871ed0d perf sort: Separate out branch stack specific sort keys
Current perf report gets segmentation fault when a branch stack specific
sort key is provided by --sort option to a perf.data file which contains
no branch infomation.  It's because those sort keys reference branch
info of a hist entry unconditionally.  Maybe we can change it checks
whether such branch info is valid or not.  But if the branch stacks are
not recorded, it'd be nop.  Thus it'd be better to make those keys are
unselectable.

This patch separates those keys to a different dimension array, so that
if user passes such a key to a file which has no branch stack will get
following message rather than a segfault.

  Error: Invalid --sort key: `symbol_from'

Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Reported-by: Stefan Beller <stefanbeller@googlemail.com>
Acked-by: Jiri Olsa <jolsa@redhat.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/r/1356599507-14226-10-git-send-email-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2013-01-24 16:40:26 -03:00
..
include perf: Fix UAPI fallout 2012-10-14 12:22:52 -07:00
scripting-engines perf tools: Remove duplicated include from trace-event-python.c 2012-10-07 13:15:04 -03:00
abspath.c perf tools: Remove some unused functions 2010-05-18 23:03:35 -03:00
alias.c perf tools: Use __maybe_used for unused variables 2012-09-11 12:19:15 -03:00
annotate.c perf annotate: Merge same lines in summary view 2012-11-09 16:50:18 -03:00
annotate.h perf annotate: Merge same lines in summary view 2012-11-09 16:50:18 -03:00
bitmap.c perf tools: Add bitmap_or function into bitmap object 2012-02-13 23:28:10 -02:00
build-id.c perf tools: Move build_id__sprintf into build-id object 2012-10-29 11:34:46 -02:00
build-id.h perf tools: Move BUILD_ID_SIZE into build-id object 2012-10-29 11:35:32 -02:00
cache.h perf ui: Always compile browser setup code 2012-11-14 16:53:03 -03:00
callchain.c perf tools: Use __maybe_used for unused variables 2012-09-11 12:19:15 -03:00
callchain.h perf record: Export the callchain parsing routine and help 2012-12-11 17:22:14 -03:00
cgroup.c perf tools: Use __maybe_used for unused variables 2012-09-11 12:19:15 -03:00
cgroup.h perf tool: Add cgroup support 2011-02-16 13:30:48 +01:00
color.c perf tools: Use scnprintf where applicable 2012-03-14 12:36:19 -03:00
color.h
config.c perf tools: Use __maybe_used for unused variables 2012-09-11 12:19:15 -03:00
cpumap.c perf stat: Check PMU cpumask file 2012-09-17 13:12:02 -03:00
cpumap.h perf tools: Allow handling a NULL cpu_map as meaning "all cpus" 2012-09-26 12:41:14 -03:00
ctype.c perf tools: ctype.c only wants util.h 2012-02-13 23:17:40 -02:00
debug.c perf tools: Fix TUI helpline output 2012-12-09 08:46:07 -03:00
debug.h perf evsel: Introduce perf_evsel__open_strerror method 2013-01-24 16:40:09 -03:00
debugfs.c perf tools: Remove unused functions from debugfs object 2012-02-13 23:25:38 -02:00
debugfs.h perf tools: Remove unused functions from debugfs object 2012-02-13 23:25:38 -02:00
dso.c perf symbols: Generalize filter in __fprintf_buildid methods 2012-12-09 08:46:07 -03:00
dso.h perf symbols: Generalize filter in __fprintf_buildid methods 2012-12-09 08:46:07 -03:00
dwarf-aux.c perf probe: Print an enum type variable in "enum variable-name" format when showing accessible variables 2012-09-27 10:58:57 -03:00
dwarf-aux.h perf probe: Search concrete out-of-line instances 2011-08-12 09:32:10 -03:00
environment.c
event.c perf tools: Use sscanf for parsing /proc/pid/maps 2012-11-14 16:51:40 -03:00
event.h perf tools: Move BUILD_ID_SIZE into build-id object 2012-10-29 11:35:32 -02:00
evlist.c perf evlist: Set the leader in the perf_evlist__config method 2012-12-11 17:19:01 -03:00
evlist.h perf evlist: Set the leader in the perf_evlist__config method 2012-12-11 17:19:01 -03:00
evsel.c perf evsel: Introduce perf_evsel__open_strerror method 2013-01-24 16:40:09 -03:00
evsel.h perf evsel: Introduce perf_evsel__open_strerror method 2013-01-24 16:40:09 -03:00
exec_cmd.c perf tools: Makefile: Remove various and sundry cruft 2011-02-18 07:43:06 -02:00
exec_cmd.h perf tools: Remove some unused functions 2010-05-18 23:03:35 -03:00
generate-cmdlist.sh perf tools: Convert to LIBELF_SUPPORT 2012-09-28 21:07:36 -03:00
header.c perf machine: Introduce struct machines 2013-01-24 16:40:12 -03:00
header.h Merge branch 'linus' into perf/core 2012-12-08 15:25:06 +01:00
help.c perf tools: Use __maybe_used for unused variables 2012-09-11 12:19:15 -03:00
help.h
hist.c perf sort: Calculate parent column width too 2013-01-24 16:40:24 -03:00
hist.h perf session: There is no need for a per session hists instance 2013-01-24 16:40:12 -03:00
hweight.c perf tools: Don't use code surrounded by __KERNEL__ 2010-05-02 12:00:44 -03:00
intlist.c perf tools: Use __maybe_used for unused variables 2012-09-11 12:19:15 -03:00
intlist.h perf tools: Introduce intlist 2012-08-03 10:42:25 -03:00
levenshtein.c
levenshtein.h
machine.c perf machine: Introduce struct machines 2013-01-24 16:40:12 -03:00
machine.h perf machine: Introduce struct machines 2013-01-24 16:40:12 -03:00
map.c perf tools: Add anonymous huge page recognition 2013-01-24 16:40:19 -03:00
map.h perf machine: Move more methods to machine.[ch] 2012-11-09 11:32:52 -03:00
pager.c perf tools: Fix pager on minimal-install embedded systems 2012-05-30 15:10:39 -03:00
parse-events.c perf tools: Add support for wildcard in tracepoint system name 2013-01-24 16:40:10 -03:00
parse-events.h Merge branch 'linus' into perf/core 2012-12-08 15:25:06 +01:00
parse-events.l perf tools: Add basic event modifier sanity check 2012-11-14 16:52:24 -03:00
parse-events.y perf tools: Add support to specify hw event as PMU event term 2012-10-24 10:41:27 +02:00
parse-options.c perf tools: Long option completion support for each subcommands 2012-10-02 18:36:44 -03:00
parse-options.h perf tools: Long option completion support for each subcommands 2012-10-02 18:36:44 -03:00
path.c perf tools: Convert to HAVE_STRLCPY 2012-10-02 18:36:24 -03:00
perf_regs.h perf tools: Convert to LIBUNWIND_SUPPORT 2012-10-02 17:56:01 -03:00
PERF-VERSION-GEN perf tools: Handle --version string generation on machines without git 2012-10-31 12:17:49 -02:00
pmu.c perf tests: Move pmu tests into separate object 2012-11-14 16:50:19 -03:00
pmu.h Merge branch 'linus' into perf/core 2012-12-08 15:25:06 +01:00
pmu.l perf tools: Add perf pmu object to access pmu format definition 2012-03-16 14:29:35 -03:00
pmu.y perf tools: Use __maybe_used for unused variables 2012-09-11 12:19:15 -03:00
probe-event.c perf tools: remove sscanf extension %as 2012-09-24 11:49:31 -03:00
probe-event.h perf probe: Provide perf interface for uprobes 2012-05-11 13:58:17 -03:00
probe-finder.c perf probe: Allow of casting an array of char to string 2013-01-24 16:40:20 -03:00
probe-finder.h perf tools: Eliminate duplicate code and use PATH_MAX consistently 2011-11-28 10:11:04 -02:00
pstack.c perf tools: Stop using 'self' in pstack 2012-11-14 16:50:38 -03:00
pstack.h perf ui: Move hists browser to util/ui/browsers/ 2010-08-10 16:11:08 -03:00
python-ext-sources Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2012-10-01 09:06:36 -07:00
python.c perf python: Fix breakage introduced by the test_attr infrastructure 2013-01-24 16:40:09 -03:00
quote.c perf tools: Remove some unused functions 2010-05-18 23:03:35 -03:00
quote.h perf tools: Remove some unused functions 2010-05-18 23:03:35 -03:00
rblist.c Account the nr_entries in rblist properly 2012-10-24 14:20:11 -02:00
rblist.h perf tools: Introducing rblist 2012-08-03 10:37:21 -03:00
run-command.c perf tools: Remove some unused functions 2010-05-18 23:03:35 -03:00
run-command.h perf tools: Remove some unused functions 2010-05-18 23:03:35 -03:00
session.c perf machine: Simplify accessing the host machine 2013-01-24 16:40:13 -03:00
session.h perf machine: Simplify accessing the host machine 2013-01-24 16:40:13 -03:00
setup.py perf python: Properly link with libtraceevent 2012-10-20 02:43:08 +02:00
sigchain.c perf tools: Remove some unused functions 2010-05-18 23:03:35 -03:00
sigchain.h perf tools: Remove some unused functions 2010-05-18 23:03:35 -03:00
sort.c perf sort: Separate out branch stack specific sort keys 2013-01-24 16:40:26 -03:00
sort.h perf sort: Separate out branch stack specific sort keys 2013-01-24 16:40:26 -03:00
stat.c perf stat: Move stats related code to util/stat.c 2012-09-17 13:10:03 -03:00
stat.h perf stat: Move stats related code to util/stat.c 2012-09-17 13:10:03 -03:00
strbuf.c perf tools: Fix strbuf_addf() when the buffer needs to grow 2012-10-30 10:32:56 -02:00
strbuf.h perf tools: Remove some unused functions 2010-05-18 23:03:35 -03:00
strfilter.c perf: Fix missing strndup declaration 2011-03-04 01:17:18 +01:00
strfilter.h perf tools: Add strfilter for general purpose string filter 2011-01-28 09:19:38 -02:00
string.c perf tools: Move strxfrchar into string object 2012-10-29 11:36:28 -02:00
strlist.c perf tools: Remove the node from rblist in strlist__remove 2012-09-05 17:36:42 -03:00
strlist.h perf tools: Change strlist to use the new rblist 2012-08-03 10:39:51 -03:00
svghelper.c perf timechart: Fix black idle boxes in the title 2011-02-28 08:56:14 +01:00
svghelper.h
symbol-elf.c perf symbols: Include elf.h header regardless LIBELF_SUPPORT 2013-01-24 16:40:18 -03:00
symbol-minimal.c perf symbols: Include elf.h header regardless LIBELF_SUPPORT 2013-01-24 16:40:18 -03:00
symbol.c perf machine: Move more machine methods to machine.c 2012-12-09 08:46:08 -03:00
symbol.h perf symbols: Include elf.h header regardless LIBELF_SUPPORT 2013-01-24 16:40:18 -03:00
sysfs.c perf tools: Fix possible (unlikely) buffer overflow 2013-01-24 16:40:18 -03:00
sysfs.h perf tools: Add sysfs mountpoint interface 2012-02-13 23:27:15 -02:00
target.c perf tools: Replace mempcpy with memcpy 2012-09-05 19:35:21 -03:00
target.h perf target: Add uses_mmap field 2012-05-17 12:32:54 -03:00
thread_map.c perf tools: fix thread_map__new_by_pid_str() memory leak in error path 2012-05-25 11:40:59 -03:00
thread_map.h perf tools: Fix thread map that is type pid_t 2012-04-11 17:38:50 -03:00
thread.c perf machine: Move more machine methods to machine.c 2012-12-09 08:46:08 -03:00
thread.h perf machine: Move more machine methods to machine.c 2012-12-09 08:46:08 -03:00
tool.h perf tools: Save some loops using perf_evlist__id2evsel 2011-11-28 17:57:40 -02:00
top.c perf top: Use perf_evlist__config() 2012-12-11 17:22:39 -03:00
top.h perf evsel: Do missing feature fallbacks in just one place 2013-01-24 16:40:08 -03:00
trace-event-info.c perf: Have perf use the new libtraceevent.a library 2012-04-25 13:28:48 +02:00
trace-event-parse.c perf tools: remove sscanf extension %as 2012-09-24 11:49:31 -03:00
trace-event-read.c perf tools: Have the page size value available for all tools 2012-10-06 16:33:14 -03:00
trace-event-scripting.c perf tools: Use __maybe_used for unused variables 2012-09-11 12:19:15 -03:00
trace-event.h perf tools: Support for DWARF CFI unwinding on post processing 2012-08-11 15:06:56 -03:00
types.h perf tools: Add union u64_swap type for swapping u64 data 2012-05-22 12:50:25 -03:00
unwind.c perf tools: Use __maybe_used for unused variables 2012-09-11 12:19:15 -03:00
unwind.h perf tools: Convert to LIBUNWIND_SUPPORT 2012-10-02 17:56:01 -03:00
usage.c perf target: Introduce perf_target__parse_uid() 2012-05-07 16:46:48 -03:00
util.c perf python: Fix breakage introduced by the test_attr infrastructure 2013-01-24 16:40:09 -03:00
util.h perf tools: Move strxfrchar into string object 2012-10-29 11:36:28 -02:00
values.c perf tools: Fix a memory leak on perf_read_values_destroy 2011-12-20 13:41:34 -02:00
values.h
vdso.c perf tools: Back [vdso] DSO with real data 2012-09-11 12:08:30 -03:00
vdso.h perf tools: Back [vdso] DSO with real data 2012-09-11 12:08:30 -03:00
wrapper.c perf tools: Use __maybe_used for unused variables 2012-09-11 12:19:15 -03:00
xyarray.c perf tools: Introduce event selectors 2011-01-03 16:39:04 -02:00
xyarray.h perf tools: Introduce event selectors 2011-01-03 16:39:04 -02:00