[v5,0/3] perf script: Have consistent output for symbol address

Message ID 20230418031825.1262579-1-changbin.du@huawei.com
Headers
Series perf script: Have consistent output for symbol address |

Message

Changbin Du April 18, 2023, 3:18 a.m. UTC
  The goal of this change is to achieve consistent output for symbol address.
Before this, the raw ip is printed for non-callchain and dso offset for
callchain. Mostly what we expect is the raw ip.

This patch does two changes:
  - Always print raw ip for resolved symbols.
  - Add a new 'dsoff' field if we really need the dso offset, and the
    offset is appended to dso name.

v5:
  o add helper map__fprintf_dsoname_dsoff() to eliminate repeated dso printing code. (Adrian)
  o do not print offset for kernel dso (a.k.a [kernel.kallsyms])
v4:
  o also print 'dsoff' for brstack,brstacksym,brstackoff,etc.
v3:
  o 'dsoff' implys 'dso' field. (Namhyung)
v2:
  o split into two patches. (Adrian)
  o do not print offset for unresolved symbols. (Adrian)

Changbin Du (3):
  perf script: print raw ip instead of binary offset for callchain
  perf: add helper map__fprintf_dsoname_dsoff
  perf: script: add new output field 'dsoff' to print dso offset

 tools/perf/Documentation/perf-script.txt |  2 +-
 tools/perf/builtin-script.c              | 60 ++++++++++--------------
 tools/perf/util/evsel_fprintf.c          | 25 ++++------
 tools/perf/util/evsel_fprintf.h          |  1 +
 tools/perf/util/map.c                    | 13 +++++
 tools/perf/util/map.h                    |  1 +
 6 files changed, 48 insertions(+), 54 deletions(-)