aboutsummaryrefslogtreecommitdiffstats
path: root/tools/perf/util
diff options
context:
space:
mode:
authorDavid Ahern <dsahern@gmail.com>2011-05-27 16:28:44 -0400
committerArnaldo Carvalho de Melo <acme@redhat.com>2011-06-02 12:29:14 -0400
commit610723f24eeb842025178a6722fa9108c4e157b6 (patch)
treee184c3b2242ba9b9da065221d4673603dd9d8e86 /tools/perf/util
parent787bef174f055343c69a9639e6e05a564980ed4c (diff)
perf script: Make printing of dso a separate field option
The 'sym' option displays both the function name and the DSO it comes from. Split the display of the dso into a separate option. This allows display of the ip address and symbol without the dso, thus shortening line lengths - and decluttering the output a bit. Cc: Frederic Weisbecker <fweisbec@gmail.com> Cc: Ingo Molnar <mingo@elte.hu> Cc: Paul Mackerras <paulus@samba.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Thomas Gleixner <tglx@linutronix.de> Link: http://lkml.kernel.org/r/1306528124-25861-3-git-send-email-dsahern@gmail.com Signed-off-by: David Ahern <dsahern@gmail.com> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/util')
-rw-r--r--tools/perf/util/session.c13
-rw-r--r--tools/perf/util/session.h2
2 files changed, 11 insertions, 4 deletions
diff --git a/tools/perf/util/session.c b/tools/perf/util/session.c
index ad33650cdd41..0dd418299261 100644
--- a/tools/perf/util/session.c
+++ b/tools/perf/util/session.c
@@ -1205,7 +1205,7 @@ struct perf_evsel *perf_session__find_first_evtype(struct perf_session *session,
1205void perf_session__print_ip(union perf_event *event, 1205void perf_session__print_ip(union perf_event *event,
1206 struct perf_sample *sample, 1206 struct perf_sample *sample,
1207 struct perf_session *session, 1207 struct perf_session *session,
1208 int print_sym) 1208 int print_sym, int print_dso)
1209{ 1209{
1210 struct addr_location al; 1210 struct addr_location al;
1211 const char *symname, *dsoname; 1211 const char *symname, *dsoname;
@@ -1241,12 +1241,15 @@ void perf_session__print_ip(union perf_event *event,
1241 else 1241 else
1242 symname = ""; 1242 symname = "";
1243 1243
1244 printf(" %s", symname);
1245 }
1246 if (print_dso) {
1244 if (node->map && node->map->dso && node->map->dso->name) 1247 if (node->map && node->map->dso && node->map->dso->name)
1245 dsoname = node->map->dso->name; 1248 dsoname = node->map->dso->name;
1246 else 1249 else
1247 dsoname = ""; 1250 dsoname = "";
1248 1251
1249 printf(" %s (%s)", symname, dsoname); 1252 printf(" (%s)", dsoname);
1250 } 1253 }
1251 printf("\n"); 1254 printf("\n");
1252 1255
@@ -1261,12 +1264,16 @@ void perf_session__print_ip(union perf_event *event,
1261 else 1264 else
1262 symname = ""; 1265 symname = "";
1263 1266
1267 printf(" %s", symname);
1268 }
1269
1270 if (print_dso) {
1264 if (al.map && al.map->dso && al.map->dso->name) 1271 if (al.map && al.map->dso && al.map->dso->name)
1265 dsoname = al.map->dso->name; 1272 dsoname = al.map->dso->name;
1266 else 1273 else
1267 dsoname = ""; 1274 dsoname = "";
1268 1275
1269 printf(" %s (%s)", symname, dsoname); 1276 printf(" (%s)", dsoname);
1270 } 1277 }
1271 } 1278 }
1272} 1279}
diff --git a/tools/perf/util/session.h b/tools/perf/util/session.h
index d76af0f975d3..de4178d7bb7b 100644
--- a/tools/perf/util/session.h
+++ b/tools/perf/util/session.h
@@ -170,6 +170,6 @@ struct perf_evsel *perf_session__find_first_evtype(struct perf_session *session,
170void perf_session__print_ip(union perf_event *event, 170void perf_session__print_ip(union perf_event *event,
171 struct perf_sample *sample, 171 struct perf_sample *sample,
172 struct perf_session *session, 172 struct perf_session *session,
173 int print_sym); 173 int print_sym, int print_dso);
174 174
175#endif /* __PERF_SESSION_H */ 175#endif /* __PERF_SESSION_H */