Re: [PATCH 28/48] perf dwarf-aux: Add die_find_variable_by_addr()

From: Namhyung Kim
Date: Thu Nov 09 2023 - 00:36:31 EST


On Mon, Nov 6, 2023 at 7:25 AM Masami Hiramatsu <mhiramat@xxxxxxxxxx> wrote:
>
> On Wed, 11 Oct 2023 20:50:51 -0700
> Namhyung Kim <namhyung@xxxxxxxxxx> wrote:
>
> > The die_find_variable_by_addr() is to find a variables in the given DIE
> > using given (PC-relative) address. Global variables will have a
> > location expression with DW_OP_addr which has an address so can simply
> > compare it with the address.
> >
> > <1><143a7>: Abbrev Number: 2 (DW_TAG_variable)
> > <143a8> DW_AT_name : loops_per_jiffy
> > <143ac> DW_AT_type : <0x1cca>
> > <143b0> DW_AT_external : 1
> > <143b0> DW_AT_decl_file : 193
> > <143b1> DW_AT_decl_line : 213
> > <143b2> DW_AT_location : 9 byte block: 3 b0 46 41 82 ff ff ff ff
> > (DW_OP_addr: ffffffff824146b0)
> >
> > Note that the type-offset should be calculated from the base address of
> > the global variable.
> >
> > Signed-off-by: Namhyung Kim <namhyung@xxxxxxxxxx>
>
> Looks good to me.
>
> Acked-by: Masami Hiramatsu (Google) <mhiramat@xxxxxxxxxx>
>
> BTW, for the global variable, you can also find it via maps. Can't you?

What do you mean by 'via maps'? The map in perf?

Thanks,
Namhyung