diff options
author | Alan Maguire <alan.maguire@oracle.com> | 2022-03-30 16:26:38 +0100 |
---|---|---|
committer | Andrii Nakryiko <andrii@kernel.org> | 2022-04-03 19:55:57 -0700 |
commit | 39f8dc43b7a05ab0e352655a14a9d613c2308b92 (patch) | |
tree | 32ebf3438890623070e52d37c9cff2944ef2cb1b /tools/testing/selftests/bpf/progs/test_bpf_cookie.c | |
parent | 433966e3ae04165811b116af492a684bad7a158c (diff) | |
download | linux-stable-39f8dc43b7a05ab0e352655a14a9d613c2308b92.tar.gz linux-stable-39f8dc43b7a05ab0e352655a14a9d613c2308b92.tar.bz2 linux-stable-39f8dc43b7a05ab0e352655a14a9d613c2308b92.zip |
libbpf: Add auto-attach for uprobes based on section name
Now that u[ret]probes can use name-based specification, it makes
sense to add support for auto-attach based on SEC() definition.
The format proposed is
SEC("u[ret]probe/binary:[raw_offset|[function_name[+offset]]")
For example, to trace malloc() in libc:
SEC("uprobe/libc.so.6:malloc")
...or to trace function foo2 in /usr/bin/foo:
SEC("uprobe//usr/bin/foo:foo2")
Auto-attach is done for all tasks (pid -1). prog can be an absolute
path or simply a program/library name; in the latter case, we use
PATH/LD_LIBRARY_PATH to resolve the full path, falling back to
standard locations (/usr/bin:/usr/sbin or /usr/lib64:/usr/lib) if
the file is not found via environment-variable specified locations.
Signed-off-by: Alan Maguire <alan.maguire@oracle.com>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/1648654000-21758-4-git-send-email-alan.maguire@oracle.com
Diffstat (limited to 'tools/testing/selftests/bpf/progs/test_bpf_cookie.c')
-rw-r--r-- | tools/testing/selftests/bpf/progs/test_bpf_cookie.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/tools/testing/selftests/bpf/progs/test_bpf_cookie.c b/tools/testing/selftests/bpf/progs/test_bpf_cookie.c index 2d3a7710e2ce..0e2222968918 100644 --- a/tools/testing/selftests/bpf/progs/test_bpf_cookie.c +++ b/tools/testing/selftests/bpf/progs/test_bpf_cookie.c @@ -37,14 +37,14 @@ int handle_kretprobe(struct pt_regs *ctx) return 0; } -SEC("uprobe/trigger_func") +SEC("uprobe") int handle_uprobe(struct pt_regs *ctx) { update(ctx, &uprobe_res); return 0; } -SEC("uretprobe/trigger_func") +SEC("uretprobe") int handle_uretprobe(struct pt_regs *ctx) { update(ctx, &uretprobe_res); |