Message ID | 20240110025617.66646-2-tianruidong@linux.alibaba.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | perf scripts python: arm-cs-trace-disasm.py: print correct disasm info | expand |
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@linux.alibaba.com> > Signed-off-by: Leo Yan <leo.yan@linaro.org> 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@linaro.org> 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 >
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@linux.alibaba.com> >> Signed-off-by: Leo Yan <leo.yan@linaro.org> > 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@linaro.org> > > 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 >>
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):