Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 288626
b: refs/heads/master
c: 547a92e
h: refs/heads/master
v: v3
  • Loading branch information
Akihiro Nagai authored and Arnaldo Carvalho de Melo committed Jan 30, 2012
1 parent f723695 commit d999a6e
Show file tree
Hide file tree
Showing 7 changed files with 43 additions and 40 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: f9d36996564f91c517b75b02942015f7e09a6574
refs/heads/master: 547a92e0aedb88129e7fbd804697a11949de2e5a
20 changes: 6 additions & 14 deletions trunk/tools/perf/builtin-script.c
Original file line number Diff line number Diff line change
Expand Up @@ -300,7 +300,7 @@ static void print_sample_start(struct perf_sample *sample,
} else
evname = __event_name(attr->type, attr->config);

printf("%s: ", evname ? evname : "(unknown)");
printf("%s: ", evname ? evname : "[unknown]");
}
}

Expand All @@ -323,7 +323,6 @@ static void print_sample_addr(union perf_event *event,
{
struct addr_location al;
u8 cpumode = event->header.misc & PERF_RECORD_MISC_CPUMODE_MASK;
const char *symname, *dsoname;

printf("%16" PRIx64, sample->addr);

Expand All @@ -343,21 +342,14 @@ static void print_sample_addr(union perf_event *event,
al.sym = map__find_symbol(al.map, al.addr, NULL);

if (PRINT_FIELD(SYM)) {
if (al.sym && al.sym->name)
symname = al.sym->name;
else
symname = "";

printf(" %16s", symname);
printf(" ");
symbol__fprintf_symname(al.sym, stdout);
}

if (PRINT_FIELD(DSO)) {
if (al.map && al.map->dso && al.map->dso->name)
dsoname = al.map->dso->name;
else
dsoname = "";

printf(" (%s)", dsoname);
printf(" (");
map__fprintf_dsoname(al.map, stdout);
printf(")");
}
}

Expand Down
12 changes: 12 additions & 0 deletions trunk/tools/perf/util/map.c
Original file line number Diff line number Diff line change
Expand Up @@ -212,6 +212,18 @@ size_t map__fprintf(struct map *self, FILE *fp)
self->start, self->end, self->pgoff, self->dso->name);
}

size_t map__fprintf_dsoname(struct map *map, FILE *fp)
{
const char *dsoname;

if (map && map->dso && map->dso->name)
dsoname = map->dso->name;
else
dsoname = "[unknown]";

return fprintf(fp, "%s", dsoname);
}

/*
* objdump wants/reports absolute IPs for ET_EXEC, and RIPs for ET_DYN.
* map->dso->adjust_symbols==1 for ET_EXEC-like cases.
Expand Down
1 change: 1 addition & 0 deletions trunk/tools/perf/util/map.h
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,7 @@ void map__delete(struct map *self);
struct map *map__clone(struct map *self);
int map__overlap(struct map *l, struct map *r);
size_t map__fprintf(struct map *self, FILE *fp);
size_t map__fprintf_dsoname(struct map *map, FILE *fp);

int map__load(struct map *self, symbol_filter_t filter);
struct symbol *map__find_symbol(struct map *self,
Expand Down
35 changes: 10 additions & 25 deletions trunk/tools/perf/util/session.c
Original file line number Diff line number Diff line change
Expand Up @@ -1296,7 +1296,6 @@ void perf_event__print_ip(union perf_event *event, struct perf_sample *sample,
int print_sym, int print_dso)
{
struct addr_location al;
const char *symname, *dsoname;
struct callchain_cursor *cursor = &evsel->hists.callchain_cursor;
struct callchain_cursor_node *node;

Expand Down Expand Up @@ -1324,20 +1323,13 @@ void perf_event__print_ip(union perf_event *event, struct perf_sample *sample,

printf("\t%16" PRIx64, node->ip);
if (print_sym) {
if (node->sym && node->sym->name)
symname = node->sym->name;
else
symname = "";

printf(" %s", symname);
printf(" ");
symbol__fprintf_symname(node->sym, stdout);
}
if (print_dso) {
if (node->map && node->map->dso && node->map->dso->name)
dsoname = node->map->dso->name;
else
dsoname = "";

printf(" (%s)", dsoname);
printf(" (");
map__fprintf_dsoname(al.map, stdout);
printf(")");
}
printf("\n");

Expand All @@ -1347,21 +1339,14 @@ void perf_event__print_ip(union perf_event *event, struct perf_sample *sample,
} else {
printf("%16" PRIx64, sample->ip);
if (print_sym) {
if (al.sym && al.sym->name)
symname = al.sym->name;
else
symname = "";

printf(" %s", symname);
printf(" ");
symbol__fprintf_symname(al.sym, stdout);
}

if (print_dso) {
if (al.map && al.map->dso && al.map->dso->name)
dsoname = al.map->dso->name;
else
dsoname = "";

printf(" (%s)", dsoname);
printf(" (");
map__fprintf_dsoname(al.map, stdout);
printf(")");
}
}
}
Expand Down
12 changes: 12 additions & 0 deletions trunk/tools/perf/util/symbol.c
Original file line number Diff line number Diff line change
Expand Up @@ -263,6 +263,18 @@ static size_t symbol__fprintf(struct symbol *sym, FILE *fp)
sym->name);
}

size_t symbol__fprintf_symname(const struct symbol *sym, FILE *fp)
{
const char *symname;

if (sym && sym->name)
symname = sym->name;
else
symname = "[unknown]";

return fprintf(fp, "%s", symname);
}

void dso__set_long_name(struct dso *dso, char *name)
{
if (name == NULL)
Expand Down
1 change: 1 addition & 0 deletions trunk/tools/perf/util/symbol.h
Original file line number Diff line number Diff line change
Expand Up @@ -241,6 +241,7 @@ void machines__destroy_guest_kernel_maps(struct rb_root *machines);

int symbol__init(void);
void symbol__exit(void);
size_t symbol__fprintf_symname(const struct symbol *sym, FILE *fp);
bool symbol_type__is_a(char symbol_type, enum map_type map_type);

size_t machine__fprintf_vmlinux_path(struct machine *machine, FILE *fp);
Expand Down

0 comments on commit d999a6e

Please sign in to comment.