Re: [PATCH v3 2/2] Support interactive annotation of code without symbols

From: Jiri Olsa
Date: Mon Feb 24 2020 - 08:52:03 EST


On Mon, Feb 24, 2020 at 06:55:12PM +0530, Ravi Bangoria wrote:
> Hi Jin,
>
> On 2/24/20 7:52 AM, Jin Yao wrote:
> > For perf report on stripped binaries it is currently impossible to do
> > annotation. The annotation state is all tied to symbols, but there are
> > either no symbols, or symbols are not covering all the code.
> >
> > We should support the annotation functionality even without symbols.
> >
> > This patch fakes a symbol and the symbol name is the string of address.
> > After that, we just follow current annotation working flow.
> >
> > For example,
> >
> > 1. perf report
> >
> > Overhead Command Shared Object Symbol
> > 20.67% div libc-2.27.so [.] __random_r
> > 17.29% div libc-2.27.so [.] __random
> > 10.59% div div [.] 0x0000000000000628
> > 9.25% div div [.] 0x0000000000000612
> > 6.11% div div [.] 0x0000000000000645
> >
> > 2. Select the line of "10.59% div div [.] 0x0000000000000628" and ENTER.
> >
> > Annotate 0x0000000000000628
> > Zoom into div thread
> > Zoom into div DSO (use the 'k' hotkey to zoom directly into the kernel)
> > Browse map details
> > Run scripts for samples of symbol [0x0000000000000628]
> > Run scripts for all samples
> > Switch to another data file in PWD
> > Exit
> >
> > 3. Select the "Annotate 0x0000000000000628" and ENTER.
> >
> > Percentâ
> > â
> > â
> > â Disassembly of section .text:
> > â
> > â 0000000000000628 <.text+0x68>:
> > â divsd %xmm4,%xmm0
> > â divsd %xmm3,%xmm1
> > â movsd (%rsp),%xmm2
> > â addsd %xmm1,%xmm0
> > â addsd %xmm2,%xmm0
> > â movsd %xmm0,(%rsp)
> >
> > Now we can see the dump of object starting from 0x628.
>
> If I press 'a' on address, it's not annotating. But if I annotate
> by pressing enter, like you explained, it works. Is it intentional?

I saw that too, but I thought it's unrelated issue,
because we played with that just recently

if you go through the 'enter' way and back, then the
next time 'a' works ;-)

jirka