• A
    perf script: Fix hex dump character output · 62942e9f
    Adrian Hunter 提交于
    Using grep -C with perf script -D can give erroneous results as grep loses
    lines due to non-printable characters, for example, below the 0020, 0060
    and 0070 lines are missing:
    
     $ perf script -D | grep -C10 AUX | head
     .  0010:  08 00 00 00 00 00 00 00 1f 00 00 00 00 00 00 00  ................
     .  0030:  01 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00  ................
     .  0040:  00 08 00 00 00 00 00 00 02 00 00 00 00 00 00 00  ................
     .  0050:  00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00  ................
     .  0080:  02 00 00 00 00 00 00 00 1b 00 00 00 00 00 00 00  ................
     .  0090:  00 00 00 00 00 00 00 00                          ........
    
     0 0 0x450 [0x98]: PERF_RECORD_AUXTRACE_INFO type: 1
       PMU Type            8
       Time Shift          31
    
    perf's isprint() is a custom implementation from the kernel, but the
    kernel's _ctype appears to include characters from Latin-1 Supplement which
    is not compatible with, for example, UTF-8. Fix by checking also isascii().
    
    After:
    
     $ tools/perf/perf script -D | grep -C10 AUX | head
     .  0010:  08 00 00 00 00 00 00 00 1f 00 00 00 00 00 00 00  ................
     .  0020:  03 84 32 2f 00 00 00 00 63 7c 4f d2 fa ff ff ff  ..2/....c|O.....
     .  0030:  01 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00  ................
     .  0040:  00 08 00 00 00 00 00 00 02 00 00 00 00 00 00 00  ................
     .  0050:  00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00  ................
     .  0060:  00 02 00 00 00 00 00 00 00 c0 03 00 00 00 00 00  ................
     .  0070:  e2 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00  ................
     .  0080:  02 00 00 00 00 00 00 00 1b 00 00 00 00 00 00 00  ................
     .  0090:  00 00 00 00 00 00 00 00                          ........
    
    Fixes: 3052ba56 ("tools perf: Move from sane_ctype.h obtained from git to the Linux's original")
    Signed-off-by: NAdrian Hunter <adrian.hunter@intel.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Link: http://lore.kernel.org/lkml/20220112085057.277205-1-adrian.hunter@intel.comSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
    62942e9f
debug.c 5.8 KB