linux/tools/perf
Howard Chu b257fac12f perf trace: Pretty print buffer data
Define TRACE_AUG_MAX_BUF in trace_augment.h data, which is the maximum
buffer size we can augment. BPF will include this header too.

Print buffer in a way that's different than just printing a string, we
print all the control characters in \digits (such as \0 for null, and
\10 for newline, LF).

For character that has a bigger value than 127, we print the digits
instead of the character itself as well.

Committer notes:

Simplified the buffer scnprintf to avoid using multiple buffers as
discussed in the patch review thread.

We can't really all 'buf' args to SCA_BUF as we're collecting so far
just on the sys_enter path, so we would be printing the previous 'read'
arg buffer contents, not what the kernel puts there.

So instead of:
   static int syscall_fmt__cmp(const void *name, const void *fmtp)
  @@ -1987,8 +1989,6 @@ syscall_arg_fmt__init_array(struct syscall_arg_fmt *arg, struct tep_format_field
  -               else if (strstr(field->type, "char *") && strstr(field->name, "buf"))
  -                       arg->scnprintf = SCA_BUF;

Do:

static const struct syscall_fmt syscall_fmts[] = {
  +       { .name     = "write",      .errpid = true,
  +         .arg = { [1] = { .scnprintf = SCA_BUF /* buf */, from_user = true, }, }, },

Signed-off-by: Howard Chu <howardchu95@gmail.com>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Ian Rogers <irogers@google.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Kan Liang <kan.liang@linux.intel.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Link: https://lore.kernel.org/r/20240815013626.935097-8-howardchu95@gmail.com
Link: https://lore.kernel.org/r/20240824163322.60796-6-howardchu95@gmail.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2024-09-10 09:52:13 -03:00
..
arch perf tools: Build x86 32-bit syscall table from arch/x86/entry/syscalls/syscall_32.tbl 2024-09-02 11:13:40 -03:00
bench perf tool: Constify tool pointers 2024-08-12 18:05:14 -03:00
dlfilters perf dlfilter: Add a test for object_code() 2023-09-30 00:09:06 -07:00
Documentation perf check: Fix inconsistencies in feature names 2024-09-04 16:19:53 -03:00
include/perf perf dlfilter: Add al_cleanup() 2023-08-15 16:41:49 -03:00
jvmti
pmu-events perf jevents: Ignore sys when determining a model directory 2024-09-06 11:44:46 -03:00
python
scripts perf scripts python cs-etm: Restore first sample log in verbose mode 2024-07-31 16:58:18 -03:00
tests perf tests probe_vfs_getname.sh: Update to use 'perf check feature' 2024-09-04 16:19:52 -03:00
trace perf trace: Introduce SCA_TIMESPEC_FROM_USER() to set .from_user = true 2024-09-09 19:23:04 -03:00
ui perf tools: Print lost samples due to BPF filter 2024-08-28 18:07:20 -03:00
util perf trace: Pretty print buffer data 2024-09-10 09:52:13 -03:00
.gitignore perf build: Shellcheck support for OUTPUT directory 2023-12-05 15:46:43 -03:00
Build perf check: Introduce 'check' subcommand 2024-09-04 09:56:05 -03:00
builtin-annotate.c perf annotate: Display the branch counter histogram 2024-08-14 10:20:40 -03:00
builtin-bench.c perf bench uprobe: Add uretprobe variant of uprobe benchmarks 2024-04-12 17:54:02 -03:00
builtin-buildid-cache.c perf dso: Add reference count checking and accessor functions 2024-05-06 15:28:49 -03:00
builtin-buildid-list.c perf buildid-list: Use perf_tool__init 2024-08-12 18:07:10 -03:00
builtin-c2c.c perf mem: Fix missed p-core mem events on ADL and RPL 2024-09-06 11:45:17 -03:00
builtin-check.c perf check: Fix inconsistencies in feature names 2024-09-04 16:19:53 -03:00
builtin-config.c
builtin-daemon.c perf daemon: Fix the build on more 32-bit architectures 2024-08-19 21:44:30 -03:00
builtin-data.c
builtin-diff.c perf report: Display the branch counter histogram 2024-08-14 10:20:40 -03:00
builtin-evlist.c perf evlist: Use perf_tool__init() 2024-08-12 18:08:35 -03:00
builtin-ftrace.c perf cap: Tidy up and improve capability testing 2024-08-20 17:53:12 -03:00
builtin-help.c
builtin-inject.c perf inject: Overhaul handling of pipe files 2024-08-30 09:23:51 -03:00
builtin-kallsyms.c perf dso: Add reference count checking and accessor functions 2024-05-06 15:28:49 -03:00
builtin-kmem.c libsubcmd: Don't free the usage string 2024-09-04 09:54:24 -03:00
builtin-kvm.c libsubcmd: Don't free the usage string 2024-09-04 09:54:24 -03:00
builtin-kwork.c libsubcmd: Don't free the usage string 2024-09-04 09:54:24 -03:00
builtin-list.c perf list: Fix the --no-desc option 2024-05-28 11:29:49 -07:00
builtin-lock.c libsubcmd: Don't free the usage string 2024-09-04 09:54:24 -03:00
builtin-mem.c perf mem: Fix the wrong reference in parse_record_events() 2024-09-06 11:45:28 -03:00
builtin-probe.c perf probe: Use zfree() to avoid possibly accessing dangling pointers 2024-05-07 12:44:02 -03:00
builtin-record.c perf record: Fix sample cgroup & namespace tracking 2024-08-19 16:32:05 -03:00
builtin-report.c perf report: Name events in stats for pipe mode 2024-08-28 18:07:21 -03:00
builtin-sched.c libsubcmd: Don't free the usage string 2024-09-04 09:54:24 -03:00
builtin-script.c perf script: Minimize "not reaching sample" for '-F +brstackinsn' 2024-09-03 12:22:01 -03:00
builtin-stat.c perf stat: Add command line option for enabling TPEBS recording 2024-08-13 15:25:32 -03:00
builtin-timechart.c perf timechart: Use perf_tool__init() 2024-08-12 18:12:06 -03:00
builtin-top.c perf map: API clean up 2024-08-19 14:49:53 -03:00
builtin-trace.c perf trace: Pretty print buffer data 2024-09-10 09:52:13 -03:00
builtin-version.c perf version: Update --build-options to use 'supported_features' array 2024-09-04 16:19:29 -03:00
builtin.h perf check: Introduce 'check' subcommand 2024-09-04 09:56:05 -03:00
check-headers.sh perf tools: Build x86 32-bit syscall table from arch/x86/entry/syscalls/syscall_32.tbl 2024-09-02 11:13:40 -03:00
command-list.txt
CREDITS
design.txt
Makefile perf tools: Fix wrong message when running "make JOBS=1" 2024-08-01 12:11:33 -03:00
Makefile.config perf report: Support LLVM for addr2line() 2024-09-03 10:15:16 -03:00
Makefile.perf perf testsuite: Install perf-report tests in the 'make install-tests -C tools/perf' target 2024-08-28 18:07:21 -03:00
MANIFEST tools perf: Add arm64 sysreg files to MANIFEST 2023-11-22 11:17:53 -08:00
perf-archive.sh perf build: Add shellcheck to tools/perf scripts 2024-04-12 17:54:02 -03:00
perf-completion.sh perf build: Add shellcheck to tools/perf scripts 2024-04-12 17:54:02 -03:00
perf-iostat.sh
perf-read-vdso.c
perf-sys.h
perf.c perf check: Introduce 'check' subcommand 2024-09-04 09:56:05 -03:00
perf.h