Re: [PATCH v2 1/1] perf scripts python: arm-cs-trace-disasm.py: add option to print virtual address

From: Leo Yan
Date: Wed Jan 10 2024 - 07:56:17 EST


Hi Ruidong,

On Wed, Jan 10, 2024 at 10:56:17AM +0800, Ruidong Tian wrote:
> arm-cs-trace-disasm just print offset for library dso now:
>
> 0000000000002200 <memcpy>:
> 2200: d503201f nop
> 2204: 8b020024 add x4, x1, x2
> 2208: 8b020005 add x5, x0, x2
>
> Add a option `-a` to print virtual offset other than offset:
>
> # perf script -s scripts/python/arm-cs-trace-disasm.py -- -d llvm-objdump -a
> ...
> ffffb4c23200 <memcpy>:
> ffffb4c23200: d503201f nop
> ffffb4c23204: 8b020024 add x4, x1, x2
> ffffb4c23208: 8b020005 add x5, x0, x2
> ...
>
> Signed-off-by: Ruidong Tian <tianruidong@xxxxxxxxxxxxxxxxx>
> Signed-off-by: Leo Yan <leo.yan@xxxxxxxxxx>

I only gave suggestion, it's no need to add my SoB and this might break
the SoB chain and rejected by maintainers.

So with removing my SoB, the patch is fine for me:

Reviewed-by: Leo Yan <leo.yan@xxxxxxxxxx>

I would like to suggest you to resend patch set v2 with all patches
- though patches 02 and 03 have no any change, but it would be easier
for maintainers to pick up the whole patches (especially this can save
time with b4 tool).

Thanks,
Leo

> ---
> tools/perf/scripts/python/arm-cs-trace-disasm.py | 13 ++++++++++++-
> 1 file changed, 12 insertions(+), 1 deletion(-)
>
> diff --git a/tools/perf/scripts/python/arm-cs-trace-disasm.py b/tools/perf/scripts/python/arm-cs-trace-disasm.py
> index d973c2baed1c..78419498237e 100755
> --- a/tools/perf/scripts/python/arm-cs-trace-disasm.py
> +++ b/tools/perf/scripts/python/arm-cs-trace-disasm.py
> @@ -36,7 +36,10 @@ option_list = [
> help="Set path to objdump executable file"),
> make_option("-v", "--verbose", dest="verbose",
> action="store_true", default=False,
> - help="Enable debugging log")
> + help="Enable debugging log"),
> + make_option("-a", "--vaddr", dest="vaddr",
> + action="store_true", default=False,
> + help="Enable virtual address")
> ]
>
> parser = OptionParser(option_list=option_list)
> @@ -108,6 +111,14 @@ def print_disam(dso_fname, dso_start, start_addr, stop_addr):
> m = disasm_re.search(line)
> if m is None:
> continue
> +
> + # Replace offset with virtual address
> + if (options.vaddr == True):
> + offset = re.search(r"^\s*([0-9a-fA-F]+)", line).group()
> + if offset:
> + virt_addr = dso_start + int(offset, 16)
> + line = line.replace(offset.lstrip(), "%x" % virt_addr)
> +
> print("\t" + line)
>
> def print_sample(sample):
> --
> 2.33.1
>