lkml.org 
[lkml]   [2020]   [Feb]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [PATCH v3 2/2] Support interactive annotation of code without symbols
From
Date


On 2/24/2020 10:04 PM, Ravi Bangoria wrote:
>
>
> On 2/24/20 7:21 PM, Jiri Olsa wrote:
>> 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 ;-)
>
> Yes.
>
> I liked the series so I was trying out the patches. Just reporting
> issues I found...
>
> jump/call arrows are also screwed up.. Like jump instruction is showing
> call arrows.
> But these all are minor issues and can be fixed later on. I don't mind ;)
>
> Ravi
>

Some jumps will show arrow '->". For example,

→ jne 120

Yes, we can check and fix that later.

Thanks
Jin Yao

\
 
 \ /
  Last update: 2020-02-24 16:53    [W:0.044 / U:1.640 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site