summaryrefslogtreecommitdiffstats
path: root/Documentation
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2009-06-02 23:24:45 +0200
committerIngo Molnar <mingo@elte.hu>2009-06-02 23:24:45 +0200
commit0a520c63e1625b92ef775da40192e1542910e7f6 (patch)
tree5c9be0fd0e7ef618e6529144427803cc264b4820 /Documentation
parent3cf165fc2e7f221a7a95098b47eb990779e29f5f (diff)
downloadop-kernel-dev-0a520c63e1625b92ef775da40192e1542910e7f6.zip
op-kernel-dev-0a520c63e1625b92ef775da40192e1542910e7f6.tar.gz
perf report: Print more info instead of <unknown> entries
Sometimes we still fail to find a DSO or look up a symbol, print out the raw information in this case (which an help debug the problem), instead of a not very helpful <unknown> string. Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: Mike Galbraith <efault@gmx.de> Cc: Paul Mackerras <paulus@samba.org> Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com> Cc: Marcelo Tosatti <mtosatti@redhat.com> Cc: Arnaldo Carvalho de Melo <acme@redhat.com> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: John Kacur <jkacur@redhat.com> LKML-Reference: <new-submission> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/perf_counter/builtin-report.c28
1 files changed, 20 insertions, 8 deletions
diff --git a/Documentation/perf_counter/builtin-report.c b/Documentation/perf_counter/builtin-report.c
index b84aaf1..270e986 100644
--- a/Documentation/perf_counter/builtin-report.c
+++ b/Documentation/perf_counter/builtin-report.c
@@ -201,7 +201,9 @@ static struct thread *thread__new(pid_t pid)
if (self != NULL) {
self->pid = pid;
- self->comm = NULL;
+ self->comm = malloc(30);
+ if (self->comm)
+ sprintf(self->comm, ":%d", pid);
INIT_LIST_HEAD(&self->maps);
}
@@ -333,7 +335,7 @@ sort__comm_cmp(struct hist_entry *left, struct hist_entry *right)
static size_t
sort__comm_print(FILE *fp, struct hist_entry *self)
{
- return fprintf(fp, " %16s", self->thread->comm ?: "<unknown>");
+ return fprintf(fp, " %16s", self->thread->comm);
}
static struct sort_entry sort_comm = {
@@ -363,7 +365,10 @@ sort__dso_cmp(struct hist_entry *left, struct hist_entry *right)
static size_t
sort__dso_print(FILE *fp, struct hist_entry *self)
{
- return fprintf(fp, " %-25s", self->dso ? self->dso->name : "<unknown>");
+ if (self->dso)
+ return fprintf(fp, " %-25s", self->dso->name);
+
+ return fprintf(fp, " %016llx", (__u64)self->ip);
}
static struct sort_entry sort_dso = {
@@ -392,11 +397,17 @@ sort__sym_print(FILE *fp, struct hist_entry *self)
size_t ret = 0;
if (verbose)
- ret += fprintf(fp, " %#018llx", (unsigned long long)self->ip);
+ ret += fprintf(fp, " %#018llx", (__u64)self->ip);
+
+ if (self->dso)
+ ret += fprintf(fp, " %s: ", self->dso->name);
+ else
+ ret += fprintf(fp, " %#016llx: ", (__u64)self->ip);
- ret += fprintf(fp, " %s: %s",
- self->dso ? self->dso->name : "<unknown>",
- self->sym ? self->sym->name : "<unknown>");
+ if (self->sym)
+ ret += fprintf(fp, "%s", self->sym->name);
+ else
+ ret += fprintf(fp, "%#016llx", (__u64)self->ip);
return ret;
}
@@ -772,7 +783,8 @@ more:
event->mmap.filename);
}
if (thread == NULL || map == NULL) {
- fprintf(stderr, "problem processing PERF_EVENT_MMAP, skipping event.\n");
+ if (verbose)
+ fprintf(stderr, "problem processing PERF_EVENT_MMAP, skipping event.\n");
goto broken_event;
}
thread__insert_map(thread, map);
OpenPOWER on IntegriCloud