• Masami Hiramatsu (Google)'s avatar
    tracing/probes: Support $argN in return probe (kprobe and fprobe) · 25f00e40
    Masami Hiramatsu (Google) authored
    Support accessing $argN in the return probe events. This will help users to
    record entry data in function return (exit) event for simplfing the function
    entry/exit information in one event, and record the result values (e.g.
    allocated object/initialized object) at function exit.
    
    For example, if we have a function `int init_foo(struct foo *obj, int param)`
    sometimes we want to check how `obj` is initialized. In such case, we can
    define a new return event like below;
    
     # echo 'r init_foo retval=$retval param=$arg2 field1=+0($arg1)' >> kprobe_events
    
    Thus it records the function parameter `param` and its result `obj->field1`
    (the dereference will be done in the function exit timing) value at once.
    
    This also support fprobe, BTF args and'$arg*'. So if CONFIG_DEBUG_INFO_BTF
    is enabled, we can trace both function parameters and the return value
    by following command.
    
     # echo 'f target_function%return $arg* $retval' >> dynamic_events
    
    Link: https://lore.kernel.org/all/170952365552.229804.224112990211602895.stgit@devnote2/Signed-off-by: default avatarMasami Hiramatsu (Google) <mhiramat@kernel.org>
    25f00e40
trace_kprobe.c 51.3 KB