tracing/probe: add a char type to show the character value of traced arguments
authorDonglin Peng <dolinux.peng@gmail.com>
Mon, 20 Feb 2023 23:52:42 +0000 (08:52 +0900)
committerMasami Hiramatsu (Google) <mhiramat@kernel.org>
Mon, 20 Feb 2023 23:52:42 +0000 (08:52 +0900)
commit8478cca1e3abd183f309cd9c2491f484acf5d377
tree22623d22350cc9f938a59ddc85b87da6bbb8ffdd
parent96cd93af794cf3ef83ae1ad7291160029d7b525e
tracing/probe: add a char type to show the character value of traced arguments

There are scenes that we want to show the character value of traced
arguments other than a decimal or hexadecimal or string value for debug
convinience. I add a new type named 'char' to do it and a new test case
file named 'kprobe_args_char.tc' to do selftest for char type.

For example:

The to be traced function is 'void demo_func(char type, char *name);', we
can add a kprobe event as follows to show argument values as we want:

echo  'p:myprobe demo_func $arg1:char +0($arg2):char[5]' > kprobe_events

we will get the following trace log:

... myprobe: (demo_func+0x0/0x29) arg1='A' arg2={'b','p','f','1',''}

Link: https://lore.kernel.org/all/20221219110613.367098-1-dolinux.peng@gmail.com/
Signed-off-by: Donglin Peng <dolinux.peng@gmail.com>
Acked-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
Reported-by: kernel test robot <lkp@intel.com>
Signed-off-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
Documentation/trace/kprobetrace.rst
kernel/trace/trace.c
kernel/trace/trace_probe.c
kernel/trace/trace_probe.h
tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_char.tc [new file with mode: 0644]