[PATCH 1/3] perf scripts python: arm-cs-trace-disasm.py: print dso base address

James Clark james.clark at arm.com
Wed Dec 20 02:44:49 PST 2023



On 14/12/2023 12:33, Ruidong Tian wrote:
> arm-cs-trace-disasm just print offset for library dso:
> 
> 	0000000000002200 <memcpy>:
>             2200: d503201f      nop
>             2204: 8b020024      add     x4, x1, x2
>             2208: 8b020005      add     x5, x0, x2
> 
> This print DSO base address to get complete virtual address for
> userspace application:
> 
> 	0000000000002200 <memcpy>: (base address is 0x0000ffffb4c21000)
>             2200: d503201f      nop
>             2204: 8b020024      add     x4, x1, x2
>             2208: 8b020005      add     x5, x0, x2
> 

I believe the output format without the base address is consistent with
objdump. For compatibility I would say that it's better to keep it that way.

We could add this as an option, but have it disabled by default. I
suppose it depends how likely that someone is using this output in a
tool and processing it further whether an option is needed or not.

Although it's also not that clear what this is useful for, given that
all the other output is relative too? Maybe you could add an example to
the commit message, even if it's just for debugging. Would an option
that turned _all_ the output into virtual addresses not be more useful?

Thanks
James

> Signed-off-by: Ruidong Tian <tianruidong at linux.alibaba.com>
> ---
>  tools/perf/scripts/python/arm-cs-trace-disasm.py | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/tools/perf/scripts/python/arm-cs-trace-disasm.py b/tools/perf/scripts/python/arm-cs-trace-disasm.py
> index d59ff53f1d94..46bf6b02eea1 100755
> --- a/tools/perf/scripts/python/arm-cs-trace-disasm.py
> +++ b/tools/perf/scripts/python/arm-cs-trace-disasm.py
> @@ -108,6 +108,8 @@ def print_disam(dso_fname, dso_start, start_addr, stop_addr):
>  			m = disasm_re.search(line)
>  			if m is None:
>  				continue
> +		else:
> +			line += " (base address is 0x%016x)" % dso_start
>  		print("\t" + line)
>  
>  def print_sample(sample):



More information about the linux-arm-kernel mailing list