Re: perf: relative path to source for perf probe?

Arnaldo Carvalho de Melo
2010-05-13T17:34:34Z

Em Thu, May 13, 2010 at 06:01:10PM +0200, Chase Douglas escreveu:
> On Thu, May 13, 2010 at 4:58 PM, Arnaldo Carvalho de Melo
> <acme@ghostprotocols.net> wrote:
> > Look in tools/perf/util/symbol.c, these variables are the ones tools use
> > to govern how the symbol system work wrt finding vmlinux:
> >
> > symbol_conf.use_vmlinux_path
> > symbol_conf.vmlinux_name
> >
> > In addition to this it will use what is in ~/.debug/ if it has a
> > build-id in the perf.data header.
> >
> > The changes for support kvm also touched this and allow for some
> > prefixing to look for guest symbols, generalizing that to make guest
> > kernel vmlinux + modules relative location be reused to look for
> > relative location for host kernel vmlinux + modules seems the way to go.
>
> After reading this some more, I think we are talking about two
> different things. I think your notes above are referring to locating
> the vmlinux image and other debug symbols. This seems to work fine for
> me using the -k flag.

What about finding the associated modules?

> However, I'm encountering an issue where the source code location
> isn't found. I think this is fairly specific to the probe command of
> perf, which is fairly new, so maybe it's missing the same level of
> support that the symbol finding code has?

Annotation needs it, in top, report, too.

But probably (haven't looked at the sources) the way to specify it will
be different, since we rely on objdump to do the disassembly, we need to
inform it where the sources are, but look at the source of all this, the
relevant DWARF tags:

<0>: Abbrev Number: 1 (DW_TAG_compile_unit)
< c> DW_AT_stmt_list : 0x0
<10> DW_AT_ranges : 0x0
<14> DW_AT_name : /home/acme_unencrypted/git/linux-2.6-tip/arch/x86/kernel/head_64.S
<57> DW_AT_comp_dir : /home/acme_unencrypted/git/build/v2.6.34-rc6-

- Arnaldo