Messages in this thread | | | Date | Mon, 2 Aug 2010 11:52:18 -0300 | From | Arnaldo Carvalho de Melo <> | Subject | Re: [PATCH v2] Re: perf annotate segfaults when source code has goto label that looks like hex number |
| |
Em Mon, Aug 02, 2010 at 11:02:14AM +0200, Peter Zijlstra escreveu: > On Thu, 2010-07-22 at 16:11 -0300, Arnaldo Carvalho de Melo wrote: > > > > diff --git a/tools/perf/util/hist.c b/tools/perf/util/hist.c > > > > @@ -976,13 +976,15 @@ static int hist_entry__parse_objdump_line(struct hist_entry *self, FILE *file, > > > > if (line_ip != -1) { > > > > u64 start = map__rip_2objdump(self->ms.map, sym->start); > > > > offset = line_ip - start; > > > > + if (offset < 0 || (u64)line_ip > sym->end) > > > > + offset = -1; > > > > > This part is good idea anyway. Even if label will be interpreted as ip > > > perf at least will not crash. It may miss-report something if check will > > > accidentally succeed though. > > > > Yeah, we can possibly find a label which is a valid hex number and that > > falls inside the address range, but with what we have in objdump this > > seems to be the best we can have, I'll commit this. > > Wouldn't it be better to re-write perf-annotate to not have wild monkey > sex with objdump and instead 'borrow' some of the objdump code to > generate the output ourselves? That way we don't rely on the output > syntax at all..
Right, the problem is that doing that seems like avoiding regular, mostly satisfying sex with a known partner to having a month long orgy blindfold. You can try, I'll pass for now.
- Arnaldo
| |