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

From: Ruidong Tian
Date: Wed Jan 10 2024 - 08:51:08 EST


Hi Leo:

Thank you very much for your advice. I will remove your SoB
and add 02 and 03 patch in V3.


在 2024/1/10 20:55, Leo Yan 写道:
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