Sure, the output is totally corrected, i just print the base address rather than modify the output address, i don't think this change is incompatible.
On 14/12/2023 12:33, Ruidong Tian wrote:
arm-cs-trace-disasm just print offset for library dso:I believe the output format without the base address is consistent with
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
objdump. For compatibility I would say that it's better to keep it that way.
I want to get the runtime trace flow with virtual address, i can get the trace information with virtual address in `perf report` and `perf script` by default, so i think it is more reasonable to print virtual address in arm-cs-trace-disasm script by default.
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.
I want to use arm-cs-trace-disasm.py output associate with PMU and SPE data to explore more CPU performance info, all the PMU/SPE/Coresight informations generated by `perf report` and `perf script` include virtual address, so i want this script do the same thing.
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@xxxxxxxxxxxxxxxxx>
---
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):