首页 > 编程语言 >使用uftrace跟踪bpf程序的执行

使用uftrace跟踪bpf程序的执行

时间:2023-11-02 17:22:55浏览次数:56  
标签:__ bpf elf us btf sec 跟踪 uftrace 4583

作者

[email protected]

正文

uftrace专门用来跟踪用户态的C/C++以及Rust程序的执行,此外它也支持跟踪内核函数。

前一篇文章bpf_func_id是如何产生的?是以minimal为例,下面用uftrace跟踪一下执行流。为了可以让uftrace更好的工作,需要对Makefile稍加修改,给GCC加入-pg编译选项,用GCC编译的程序是bpf的用户态程序以及libbpf库,下面是修改方法:

对examples/c/Makefile的修改
diff --git a/examples/c/Makefile b/examples/c/Makefile
index 736750e..dca492e 100644
--- a/examples/c/Makefile
+++ b/examples/c/Makefile
@@ -21,7 +21,7 @@ VMLINUX := ../../vmlinux/$(ARCH)/vmlinux.h
 # libbpf to avoid dependency on system-wide headers, which could be missing or
 # outdated
 INCLUDES := -I$(OUTPUT) -I../../libbpf/include/uapi -I$(dir $(VMLINUX)) -I$(LIBBLAZESYM_INC)
-CFLAGS := -g -Wall
+CFLAGS := -g -Wall -pg
 ALL_LDFLAGS := $(LDFLAGS) $(EXTRA_LDFLAGS)
对libbpf的修改
diff --git a/src/Makefile b/src/Makefile
index 35c5724..1b95a6e 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -34,7 +34,7 @@ ALL_CFLAGS := $(INCLUDES)

 SHARED_CFLAGS += -fPIC -fvisibility=hidden -DSHARED

-CFLAGS ?= -g -O2 -Werror -Wall -std=gnu89
+CFLAGS ?= -g -pg -O2 -Werror -Wall -std=gnu89
 ALL_CFLAGS += $(CFLAGS)                                                \
              -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64              \
              -Wno-unknown-warning-option -Wno-format-overflow          \

修改完毕后,clean掉然后重新编译。

用uftrace进行跟踪,同时-a开启自动探测函数参数以及返回值的功能:

# uftrace record -a --no-event   ./minimal
# uftrace replay

下面是输出的日志:

minimal程序的跟踪日志
# DURATION     TID     FUNCTION
            [  4583] | main(1, 0x7ffdaf1c26d8) {
   0.882 us [  4583] |   libbpf_set_print(&libbpf_print_fn) = &__base_pr;
            [  4583] |   minimal_bpf__open() {
            [  4583] |     minimal_bpf__open_opts(0) {
   0.642 us [  4583] |       calloc(1, 56) = 0x563f60681220;
            [  4583] |       minimal_bpf__create_skeleton(0x563f60681220) {
   6.743 us [  4583] |         calloc(1, 72) = 0x563f60681260;
   0.151 us [  4583] |         calloc(2, 24) = 0x563f606812b0;
   0.160 us [  4583] |         calloc(1, 24) = 0x563f606812f0;
   0.271 us [  4583] |         minimal_bpf__elf_bytes(0x563f60681278) = &data.6285;
   8.746 us [  4583] |       } = 0; /* minimal_bpf__create_skeleton */
            [  4583] |       bpf_object__open_skeleton(0x563f60681260, 0) {
            [  4583] |         bpf_object__open_mem(&data.6285, 2040, 0x7ffdaf1c2490) {
            [  4583] |           bpf_object_open() {
   0.230 us [  4583] |             elf_version();
            [  4583] |             libbpf_print(LIBBPF_DEBUG, "libbpf: loading object '%s' from buffer\n") {
   0.321 us [  4583] |               __errno_location();
            [  4583] |               libbpf_print_fn(LIBBPF_DEBUG, "libbpf: loading object '%s' from buffer\n", 0x7ffdaf1c21a0) {
 563.556 us [  4583] |                 vfprintf();
 565.991 us [  4583] |               } = 49; /* libbpf_print_fn */
   1.392 ms [  4583] |             } /* libbpf_print */
   1.052 us [  4583] |             strlen("minimal_bpf") = 11;
   1.302 us [  4583] |             calloc(1, 428) = 0x563f60682390;
   0.330 us [  4583] |             memcpy(0x563f60682530, 0x563f6046d008, 12);
            [  4583] |             get_kernel_version() {
            [  4583] |               get_ubuntu_kernel_version() {
 395.750 us [  4583] |                 faccessat();
 397.273 us [  4583] |               } = 0; /* get_ubuntu_kernel_version */
            [  4583] |               get_kernel_version.part.0() {
   1.863 us [  4583] |                 uname();
  14.327 us [  4583] |                 strstr("#17 SMP PREEMPT_DYNAMIC Sun Oct 29 01:11:05 PDT 2023", "Debian ") = "NULL";
   4.128 us [  4583] |                 __isoc99_sscanf();
  23.594 us [  4583] |               } /* get_kernel_version.part.0 */
 422.670 us [  4583] |             } /* get_kernel_version */
   2.104 us [  4583] |             elf_memory();
   0.291 us [  4583] |             elf_kind();
   0.050 us [  4583] |             gelf_getclass();
   0.350 us [  4583] |             elf64_getehdr();
   0.371 us [  4583] |             elf_getshdrstrndx();
   0.240 us [  4583] |             elf_getscn();
   0.851 us [  4583] |             elf_rawdata();
   0.130 us [  4583] |             elf_getshdrnum();
   0.371 us [  4583] |             calloc(10, 24) = 0x563f60682e80;
   0.060 us [  4583] |             elf_nextscn();
            [  4583] |             elf_sec_hdr(0x563f60682390, 0x563f606826f8) {
   0.490 us [  4583] |               elf64_getshdr();
   2.605 us [  4583] |             } /* elf_sec_hdr */
   0.160 us [  4583] |             elf_nextscn();
            [  4583] |             elf_sec_hdr(0x563f60682390, 0x563f606827c8) {
   0.080 us [  4583] |               elf64_getshdr();
   0.471 us [  4583] |             } /* elf_sec_hdr */
            [  4583] |             elf_sec_data(0x563f60682390, 0x563f606827c8) {
   0.501 us [  4583] |               elf_getdata();
   1.051 us [  4583] |             } /* elf_sec_data */
   0.150 us [  4583] |             elf_ndxscn();
   0.061 us [  4583] |             elf_nextscn();
            [  4583] |             elf_sec_hdr(0x563f60682390, 0x563f60682898) {
   0.070 us [  4583] |               elf64_getshdr();
   0.310 us [  4583] |             } /* elf_sec_hdr */
   0.080 us [  4583] |             elf_nextscn();
            [  4583] |             elf_sec_hdr(0x563f60682390, 0x563f60682968) {
   0.070 us [  4583] |               elf64_getshdr();
   0.301 us [  4583] |             } /* elf_sec_hdr */
   0.070 us [  4583] |             elf_nextscn();
            [  4583] |             elf_sec_hdr(0x563f60682390, 0x563f60682a38) {
   0.070 us [  4583] |               elf64_getshdr();
   0.281 us [  4583] |             } /* elf_sec_hdr */
   0.070 us [  4583] |             elf_nextscn();
            [  4583] |             elf_sec_hdr(0x563f60682390, 0x563f60682b08) {
   0.070 us [  4583] |               elf64_getshdr();
   0.281 us [  4583] |             } /* elf_sec_hdr */
   0.070 us [  4583] |             elf_nextscn();
            [  4583] |             elf_sec_hdr(0x563f60682390, 0x563f60682bd8) {
   0.071 us [  4583] |               elf64_getshdr();
   0.291 us [  4583] |             } /* elf_sec_hdr */
   0.070 us [  4583] |             elf_nextscn();
            [  4583] |             elf_sec_hdr(0x563f60682390, 0x563f60682ca8) {
   0.071 us [  4583] |               elf64_getshdr();
   0.281 us [  4583] |             } /* elf_sec_hdr */
   0.070 us [  4583] |             elf_nextscn();
            [  4583] |             elf_sec_hdr(0x563f60682390, 0x563f60682d78) {
   0.061 us [  4583] |               elf64_getshdr();
   0.281 us [  4583] |             } /* elf_sec_hdr */
   0.080 us [  4583] |             elf_nextscn();
   0.081 us [  4583] |             elf_nextscn();
   0.060 us [  4583] |             elf_ndxscn();
            [  4583] |             elf_sec_hdr(0x563f60682390, 0x563f606826f8) {
   0.070 us [  4583] |               elf64_getshdr();
   0.291 us [  4583] |             } /* elf_sec_hdr */
            [  4583] |             elf_sec_str(0x563f60682390, 1) {
   0.470 us [  4583] |               elf_strptr();
   0.792 us [  4583] |             } /* elf_sec_str */
   0.070 us [  4583] |             elf_nextscn();
   0.060 us [  4583] |             elf_ndxscn();
            [  4583] |             elf_sec_hdr(0x563f60682390, 0x563f606827c8) {
   0.070 us [  4583] |               elf64_getshdr();
   0.291 us [  4583] |             } /* elf_sec_hdr */
            [  4583] |             elf_sec_str(0x563f60682390, 9) {
   0.081 us [  4583] |               elf_strptr();
   0.301 us [  4583] |             } /* elf_sec_str */
            [  4583] |             elf_sec_data(0x563f60682390, 0x563f606827c8) {
   0.060 us [  4583] |               elf_getdata();
   0.311 us [  4583] |             } /* elf_sec_data */
            [  4583] |             libbpf_print(LIBBPF_DEBUG, "libbpf: elf: section(%d) %s, size %ld, link %d, flags %lx, type=%d\n") {
   0.270 us [  4583] |               __errno_location();
            [  4583] |               libbpf_print_fn(LIBBPF_DEBUG, "libbpf: elf: section(%d) %s, size %ld, link %d, flags %lx, type=%d\n", 0x7ffdaf1c2190) {
  34.895 us [  4583] |                 vfprintf();
  36.338 us [  4583] |               } = 67; /* libbpf_print_fn */
 336.010 us [  4583] |             } /* libbpf_print */
   0.160 us [  4583] |             elf_nextscn();
   0.070 us [  4583] |             elf_ndxscn();
            [  4583] |             elf_sec_hdr(0x563f60682390, 0x563f60682898) {
   0.131 us [  4583] |               elf64_getshdr();
   0.672 us [  4583] |             } /* elf_sec_hdr */
            [  4583] |             elf_sec_str(0x563f60682390, 17) {
   0.270 us [  4583] |               elf_strptr();
   0.641 us [  4583] |             } /* elf_sec_str */
            [  4583] |             elf_sec_data(0x563f60682390, 0x563f60682898) {
   0.371 us [  4583] |               elf_getdata();
   0.651 us [  4583] |             } /* elf_sec_data */
            [  4583] |             libbpf_print(LIBBPF_DEBUG, "libbpf: elf: section(%d) %s, size %ld, link %d, flags %lx, type=%d\n") {
   0.080 us [  4583] |               __errno_location();
            [  4583] |               libbpf_print_fn(LIBBPF_DEBUG, "libbpf: elf: section(%d) %s, size %ld, link %d, flags %lx, type=%d\n", 0x7ffdaf1c2190) {
   3.506 us [  4583] |                 vfprintf();
  21.611 us [  4583] |               } = 87; /* libbpf_print_fn */
  22.813 us [  4583] |             } /* libbpf_print */
   1.553 us [  4583] |             strcmp("tp/syscalls/sys_enter_write", ".text") = 70;
            [  4583] |             elf_sym_str(0x563f60682390, 105) {
   0.581 us [  4583] |               elf_strptr();
   1.994 us [  4583] |             } /* elf_sym_str */
            [  4583] |             libbpf_print(LIBBPF_DEBUG, "libbpf: sec '%s': found program '%s' at insn offset %zu (%zu bytes), code size %zu insns (%zu b...") {
   0.070 us [  4583] |               __errno_location();
            [  4583] |               libbpf_print_fn(LIBBPF_DEBUG, "libbpf: sec '%s': found program '%s' at insn offset %zu (%zu bytes), code size %zu insns (%zu b...", 0x7ffdaf1c2190) {
  32.882 us [  4583] |                 vfprintf();
  34.074 us [  4583] |               } = 128; /* libbpf_print_fn */
  36.028 us [  4583] |             } /* libbpf_print */
   0.852 us [  4583] |             realloc(0, 200) = 0x563f604d3ab0;
   0.742 us [  4583] |             strdup("tp/syscalls/sys_enter_write") = "tp/syscalls/sys_enter_write";
   0.140 us [  4583] |             strdup("handle_tp") = "handle_tp";
   0.421 us [  4583] |             malloc(104) = 0x563f605849e0;
   0.291 us [  4583] |             memcpy(0x563f605849e0, &data.6285, 104);
   0.130 us [  4583] |             elf_nextscn();
   0.040 us [  4583] |             elf_ndxscn();
            [  4583] |             elf_sec_hdr(0x563f60682390, 0x563f60682968) {
   0.100 us [  4583] |               elf64_getshdr();
   0.641 us [  4583] |             } /* elf_sec_hdr */
            [  4583] |             elf_sec_str(0x563f60682390, 45) {
   0.100 us [  4583] |               elf_strptr();
   0.341 us [  4583] |             } /* elf_sec_str */
            [  4583] |             elf_sec_data(0x563f60682390, 0x563f60682968) {
   0.641 us [  4583] |               elf_getdata();
   0.942 us [  4583] |             } /* elf_sec_data */
            [  4583] |             libbpf_print(LIBBPF_DEBUG, "libbpf: elf: section(%d) %s, size %ld, link %d, flags %lx, type=%d\n") {
   0.040 us [  4583] |               __errno_location();
            [  4583] |               libbpf_print_fn(LIBBPF_DEBUG, "libbpf: elf: section(%d) %s, size %ld, link %d, flags %lx, type=%d\n", 0x7ffdaf1c2190) {
   3.437 us [  4583] |                 vfprintf();
   3.787 us [  4583] |               } = 66; /* libbpf_print_fn */
   4.458 us [  4583] |             } /* libbpf_print */
            [  4583] |             libbpf_print(LIBBPF_DEBUG, "libbpf: license of %s is %s\n") {
   0.040 us [  4583] |               __errno_location();
            [  4583] |               libbpf_print_fn(LIBBPF_DEBUG, "libbpf: license of %s is %s\n", 0x7ffdaf1c21a0) {
   2.174 us [  4583] |                 vfprintf();
   2.435 us [  4583] |               } = 47; /* libbpf_print_fn */
   2.835 us [  4583] |             } /* libbpf_print */
   0.050 us [  4583] |             elf_nextscn();
   0.040 us [  4583] |             elf_ndxscn();
            [  4583] |             elf_sec_hdr(0x563f60682390, 0x563f60682a38) {
   0.110 us [  4583] |               elf64_getshdr();
   0.310 us [  4583] |             } /* elf_sec_hdr */
            [  4583] |             elf_sec_str(0x563f60682390, 53) {
   0.050 us [  4583] |               elf_strptr();
   0.240 us [  4583] |             } /* elf_sec_str */
            [  4583] |             elf_sec_data(0x563f60682390, 0x563f60682a38) {
   0.101 us [  4583] |               elf_getdata();
   0.261 us [  4583] |             } /* elf_sec_data */
            [  4583] |             libbpf_print(LIBBPF_DEBUG, "libbpf: elf: section(%d) %s, size %ld, link %d, flags %lx, type=%d\n") {
   0.040 us [  4583] |               __errno_location();
            [  4583] |               libbpf_print_fn(LIBBPF_DEBUG, "libbpf: elf: section(%d) %s, size %ld, link %d, flags %lx, type=%d\n", 0x7ffdaf1c2190) {
   2.254 us [  4583] |                 vfprintf();
   2.505 us [  4583] |               } = 62; /* libbpf_print_fn */
   2.905 us [  4583] |             } /* libbpf_print */
   0.040 us [  4583] |             elf_nextscn();
   0.040 us [  4583] |             elf_ndxscn();
            [  4583] |             elf_sec_hdr(0x563f60682390, 0x563f60682b08) {
   0.040 us [  4583] |               elf64_getshdr();
   0.221 us [  4583] |             } /* elf_sec_hdr */
            [  4583] |             elf_sec_str(0x563f60682390, 58) {
   0.050 us [  4583] |               elf_strptr();
   0.230 us [  4583] |             } /* elf_sec_str */
            [  4583] |             elf_sec_data(0x563f60682390, 0x563f60682b08) {
   0.130 us [  4583] |               elf_getdata();
   0.291 us [  4583] |             } /* elf_sec_data */
            [  4583] |             libbpf_print(LIBBPF_DEBUG, "libbpf: elf: section(%d) %s, size %ld, link %d, flags %lx, type=%d\n") {
   0.040 us [  4583] |               __errno_location();
            [  4583] |               libbpf_print_fn(LIBBPF_DEBUG, "libbpf: elf: section(%d) %s, size %ld, link %d, flags %lx, type=%d\n", 0x7ffdaf1c2190) {
   2.144 us [  4583] |                 vfprintf();
   2.394 us [  4583] |               } = 66; /* libbpf_print_fn */
   2.785 us [  4583] |             } /* libbpf_print */
   0.672 us [  4583] |             strcmp(".rodata", ".data") = 14;
   0.661 us [  4583] |             strncmp(".rodata", ".data.", 6) = 14;
   0.340 us [  4583] |             strcmp(".rodata", ".rodata") = 0;
   0.040 us [  4583] |             elf_nextscn();
   0.040 us [  4583] |             elf_ndxscn();
            [  4583] |             elf_sec_hdr(0x563f60682390, 0x563f60682bd8) {
   0.050 us [  4583] |               elf64_getshdr();
   0.251 us [  4583] |             } /* elf_sec_hdr */
            [  4583] |             elf_sec_str(0x563f60682390, 130) {
   0.060 us [  4583] |               elf_strptr();
   0.220 us [  4583] |             } /* elf_sec_str */
            [  4583] |             elf_sec_data(0x563f60682390, 0x563f60682bd8) {
   0.140 us [  4583] |               elf_getdata();
   0.291 us [  4583] |             } /* elf_sec_data */
            [  4583] |             libbpf_print(LIBBPF_DEBUG, "libbpf: elf: section(%d) %s, size %ld, link %d, flags %lx, type=%d\n") {
   0.041 us [  4583] |               __errno_location();
            [  4583] |               libbpf_print_fn(LIBBPF_DEBUG, "libbpf: elf: section(%d) %s, size %ld, link %d, flags %lx, type=%d\n", 0x7ffdaf1c2190) {
   2.294 us [  4583] |                 vfprintf();
   2.545 us [  4583] |               } = 91; /* libbpf_print_fn */
   2.976 us [  4583] |             } /* libbpf_print */
            [  4583] |             elf_sec_by_idx(0x563f60682390, 3) {
   0.070 us [  4583] |               elf_getscn();
   0.381 us [  4583] |             } /* elf_sec_by_idx */
            [  4583] |             elf_sec_hdr(0x563f60682390, 0x563f60682898) {
   0.050 us [  4583] |               elf64_getshdr();
   0.220 us [  4583] |             } /* elf_sec_hdr */
   0.040 us [  4583] |             elf_nextscn();
   0.110 us [  4583] |             elf_ndxscn();
            [  4583] |             elf_sec_hdr(0x563f60682390, 0x563f60682ca8) {
   0.040 us [  4583] |               elf64_getshdr();
  13.165 us [  4583] |             } /* elf_sec_hdr */
            [  4583] |             elf_sec_str(0x563f60682390, 162) {
   0.111 us [  4583] |               elf_strptr();
   0.321 us [  4583] |             } /* elf_sec_str */
            [  4583] |             elf_sec_data(0x563f60682390, 0x563f60682ca8) {
   0.080 us [  4583] |               elf_getdata();
   0.241 us [  4583] |             } /* elf_sec_data */
            [  4583] |             libbpf_print(LIBBPF_DEBUG, "libbpf: elf: section(%d) %s, size %ld, link %d, flags %lx, type=%d\n") {
   0.040 us [  4583] |               __errno_location();
            [  4583] |               libbpf_print_fn(LIBBPF_DEBUG, "libbpf: elf: section(%d) %s, size %ld, link %d, flags %lx, type=%d\n", 0x7ffdaf1c2190) {
   2.835 us [  4583] |                 vfprintf();
   3.106 us [  4583] |               } = 64; /* libbpf_print_fn */
   3.536 us [  4583] |             } /* libbpf_print */
   0.040 us [  4583] |             elf_nextscn();
   0.040 us [  4583] |             elf_ndxscn();
            [  4583] |             elf_sec_hdr(0x563f60682390, 0x563f60682d78) {
   0.040 us [  4583] |               elf64_getshdr();
   0.211 us [  4583] |             } /* elf_sec_hdr */
            [  4583] |             elf_sec_str(0x563f60682390, 167) {
   0.080 us [  4583] |               elf_strptr();
   0.240 us [  4583] |             } /* elf_sec_str */
            [  4583] |             elf_sec_data(0x563f60682390, 0x563f60682d78) {
   0.071 us [  4583] |               elf_getdata();
   0.231 us [  4583] |             } /* elf_sec_data */
            [  4583] |             libbpf_print(LIBBPF_DEBUG, "libbpf: elf: section(%d) %s, size %ld, link %d, flags %lx, type=%d\n") {
   0.040 us [  4583] |               __errno_location();
            [  4583] |               libbpf_print_fn(LIBBPF_DEBUG, "libbpf: elf: section(%d) %s, size %ld, link %d, flags %lx, type=%d\n", 0x7ffdaf1c2190) {
   2.214 us [  4583] |                 vfprintf();
   2.465 us [  4583] |               } = 68; /* libbpf_print_fn */
   2.845 us [  4583] |             } /* libbpf_print */
   0.050 us [  4583] |             elf_nextscn();
   1.022 us [  4583] |             qsort(0x563f604d3ab0, 1, 200, &cmp_progs);
            [  4583] |             btf__new(&data.6285, 595) {
            [  4583] |               btf_new(&data.6285, 595, 0) {
   0.672 us [  4583] |                 calloc(1, 120) = 0x563f60682fd0;
   0.531 us [  4583] |                 malloc(595) = 0x563f605449f0;
   0.311 us [  4583] |                 memcpy(0x563f605449f0, &data.6285, 595);
 452.111 us [  4583] |                 btf_type_size(0x563f60544a08) = 12;
            [  4583] |                 btf_add_type_idx_entry(0x563f60682fd0, 0) {
            [  4583] |                   libbpf_add_mem(0x563f60683000, 0x563f60683008, 4, 0, 0x7fffffff, 1) {
   0.862 us [  4583] |                     realloc(0, 64) = 0x563f6064eab0;
   0.501 us [  4583] |                     memset(0x563f6064eab0, 0, 64);
   3.847 us [  4583] |                   } = 0x563f6064eab0; /* libbpf_add_mem */
   5.340 us [  4583] |                 } = 0; /* btf_add_type_idx_entry */
   0.181 us [  4583] |                 btf_type_size(0x563f60544a14) = 20;
            [  4583] |                 btf_add_type_idx_entry(0x563f60682fd0, 12) {
   0.181 us [  4583] |                   libbpf_add_mem(0x563f60683000, 0x563f60683008, 4, 1, 0x7fffffff, 1) = 0x563f6064eab4;
   0.541 us [  4583] |                 } = 0; /* btf_add_type_idx_entry */
   0.120 us [  4583] |                 btf_type_size(0x563f60544a28) = 16;
            [  4583] |                 btf_add_type_idx_entry(0x563f60682fd0, 32) {
   0.151 us [  4583] |                   libbpf_add_mem(0x563f60683000, 0x563f60683008, 4, 2, 0x7fffffff, 1) = 0x563f6064eab8;
   0.451 us [  4583] |                 } = 0; /* btf_add_type_idx_entry */
   0.100 us [  4583] |                 btf_type_size(0x563f60544a38) = 12;
            [  4583] |                 btf_add_type_idx_entry(0x563f60682fd0, 48) {
   0.150 us [  4583] |                   libbpf_add_mem(0x563f60683000, 0x563f60683008, 4, 3, 0x7fffffff, 1) = 0x563f6064eabc;
   0.391 us [  4583] |                 } = 0; /* btf_add_type_idx_entry */
   0.091 us [  4583] |                 btf_type_size(0x563f60544a44) = 16;
            [  4583] |                 btf_add_type_idx_entry(0x563f60682fd0, 60) {
   0.140 us [  4583] |                   libbpf_add_mem(0x563f60683000, 0x563f60683008, 4, 4, 0x7fffffff, 1) = 0x563f6064eac0;
   0.371 us [  4583] |                 } = 0; /* btf_add_type_idx_entry */
   0.100 us [  4583] |                 btf_type_size(0x563f60544a54) = 24;
            [  4583] |                 btf_add_type_idx_entry(0x563f60682fd0, 76) {
   0.141 us [  4583] |                   libbpf_add_mem(0x563f60683000, 0x563f60683008, 4, 5, 0x7fffffff, 1) = 0x563f6064eac4;
   0.371 us [  4583] |                 } = 0; /* btf_add_type_idx_entry */
   0.090 us [  4583] |                 btf_type_size(0x563f60544a6c) = 16;
            [  4583] |                 btf_add_type_idx_entry(0x563f60682fd0, 100) {
   0.150 us [  4583] |                   libbpf_add_mem(0x563f60683000, 0x563f60683008, 4, 6, 0x7fffffff, 1) = 0x563f6064eac8;
   0.371 us [  4583] |                 } = 0; /* btf_add_type_idx_entry */
   0.181 us [  4583] |                 btf_type_size(0x563f60544a7c) = 16;
            [  4583] |                 btf_add_type_idx_entry(0x563f60682fd0, 116) {
   0.150 us [  4583] |                   libbpf_add_mem(0x563f60683000, 0x563f60683008, 4, 7, 0x7fffffff, 1) = 0x563f6064eacc;
   0.381 us [  4583] |                 } = 0; /* btf_add_type_idx_entry */
   0.090 us [  4583] |                 btf_type_size(0x563f60544a8c) = 16;
            [  4583] |                 btf_add_type_idx_entry(0x563f60682fd0, 132) {
   0.151 us [  4583] |                   libbpf_add_mem(0x563f60683000, 0x563f60683008, 4, 8, 0x7fffffff, 1) = 0x563f6064ead0;
   0.381 us [  4583] |                 } = 0; /* btf_add_type_idx_entry */
   0.100 us [  4583] |                 btf_type_size(0x563f60544a9c) = 12;
            [  4583] |                 btf_add_type_idx_entry(0x563f60682fd0, 148) {
   0.150 us [  4583] |                   libbpf_add_mem(0x563f60683000, 0x563f60683008, 4, 9, 0x7fffffff, 1) = 0x563f6064ead4;
   0.370 us [  4583] |                 } = 0; /* btf_add_type_idx_entry */
   0.091 us [  4583] |                 btf_type_size(0x563f60544aa8) = 24;
            [  4583] |                 btf_add_type_idx_entry(0x563f60682fd0, 160) {
   0.140 us [  4583] |                   libbpf_add_mem(0x563f60683000, 0x563f60683008, 4, 10, 0x7fffffff, 1) = 0x563f6064ead8;
   0.381 us [  4583] |                 } = 0; /* btf_add_type_idx_entry */
   0.100 us [  4583] |                 btf_type_size(0x563f60544ac0) = 16;
            [  4583] |                 btf_add_type_idx_entry(0x563f60682fd0, 184) {
   0.141 us [  4583] |                   libbpf_add_mem(0x563f60683000, 0x563f60683008, 4, 11, 0x7fffffff, 1) = 0x563f6064eadc;
   0.381 us [  4583] |                 } = 0; /* btf_add_type_idx_entry */
   0.100 us [  4583] |                 btf_type_size(0x563f60544ad0) = 24;
            [  4583] |                 btf_add_type_idx_entry(0x563f60682fd0, 200) {
   0.150 us [  4583] |                   libbpf_add_mem(0x563f60683000, 0x563f60683008, 4, 12, 0x7fffffff, 1) = 0x563f6064eae0;
   0.380 us [  4583] |                 } = 0; /* btf_add_type_idx_entry */
   0.091 us [  4583] |                 btf_type_size(0x563f60544ae8) = 24;
            [  4583] |                 btf_add_type_idx_entry(0x563f60682fd0, 224) {
   0.150 us [  4583] |                   libbpf_add_mem(0x563f60683000, 0x563f60683008, 4, 13, 0x7fffffff, 1) = 0x563f6064eae4;
  11.912 us [  4583] |                 } = 0; /* btf_add_type_idx_entry */
   0.110 us [  4583] |                 btf_type_size(0x563f60544b00) = 24;
            [  4583] |                 btf_add_type_idx_entry(0x563f60682fd0, 248) {
   0.151 us [  4583] |                   libbpf_add_mem(0x563f60683000, 0x563f60683008, 4, 14, 0x7fffffff, 1) = 0x563f6064eae8;
   0.381 us [  4583] |                 } = 0; /* btf_add_type_idx_entry */
            [  4583] |                 btf_validate_str(0x563f60682fd0, 0, "type name", 1) {
   0.200 us [  4583] |                   btf__str_by_offset(0x563f60682fd0, 0);
   1.072 us [  4583] |                 } /* btf_validate_str */
            [  4583] |                 btf_validate_id(0x563f60682fd0, 0, 1) {
   0.250 us [  4583] |                   btf__type_by_id(0x563f60682fd0, 0);
   0.842 us [  4583] |                 } /* btf_validate_id */
            [  4583] |                 btf_validate_str(0x563f60682fd0, 0, "type name", 2) {
   0.110 us [  4583] |                   btf__str_by_offset(0x563f60682fd0, 0);
   0.461 us [  4583] |                 } /* btf_validate_str */
            [  4583] |                 btf_validate_str(0x563f60682fd0, 1, "param name", 2) {
   0.090 us [  4583] |                   btf__str_by_offset(0x563f60682fd0, 1);
   0.381 us [  4583] |                 } /* btf_validate_str */
            [  4583] |                 btf_validate_id(0x563f60682fd0, 1, 2) {
   0.110 us [  4583] |                   btf__type_by_id(0x563f60682fd0, 1);
   0.351 us [  4583] |                 } /* btf_validate_id */
            [  4583] |                 btf_validate_str(0x563f60682fd0, 5, "type name", 3) {
   0.090 us [  4583] |                   btf__str_by_offset(0x563f60682fd0, 5);
   0.350 us [  4583] |                 } /* btf_validate_str */
            [  4583] |                 btf_validate_str(0x563f60682fd0, 9, "type name", 4) {
   0.090 us [  4583] |                   btf__str_by_offset(0x563f60682fd0, 9);
   0.340 us [  4583] |                 } /* btf_validate_str */
            [  4583] |                 btf_validate_id(0x563f60682fd0, 2, 4) {
   0.100 us [  4583] |                   btf__type_by_id(0x563f60682fd0, 2);
   0.331 us [  4583] |                 } /* btf_validate_id */
   0.100 us [  4583] |                 btf__type_by_id(0x563f60682fd0, 2);
            [  4583] |                 btf_validate_str(0x563f60682fd0, 19, "type name", 5) {
   0.110 us [  4583] |                   btf__str_by_offset(0x563f60682fd0, 19);
   0.420 us [  4583] |                 } /* btf_validate_str */
            [  4583] |                 btf_validate_str(0x563f60682fd0, 0, "type name", 6) {
   0.100 us [  4583] |                   btf__str_by_offset(0x563f60682fd0, 0);
   0.360 us [  4583] |                 } /* btf_validate_str */
            [  4583] |                 btf_validate_id(0x563f60682fd0, 5, 6) {
   0.110 us [  4583] |                   btf__type_by_id(0x563f60682fd0, 5);
   0.350 us [  4583] |                 } /* btf_validate_id */
            [  4583] |                 btf_validate_id(0x563f60682fd0, 7, 6) {
   0.090 us [  4583] |                   btf__type_by_id(0x563f60682fd0, 7);
   0.311 us [  4583] |                 } /* btf_validate_id */
            [  4583] |                 btf_validate_str(0x563f60682fd0, 24, "type name", 7) {
   0.101 us [  4583] |                   btf__str_by_offset(0x563f60682fd0, 24);
   0.351 us [  4583] |                 } /* btf_validate_str */
            [  4583] |                 btf_validate_str(0x563f60682fd0, 44, "type name", 8) {
   0.090 us [  4583] |                   btf__str_by_offset(0x563f60682fd0, 44);
   0.341 us [  4583] |                 } /* btf_validate_str */
            [  4583] |                 btf_validate_id(0x563f60682fd0, 6, 8) {
   0.090 us [  4583] |                   btf__type_by_id(0x563f60682fd0, 6);
   0.320 us [  4583] |                 } /* btf_validate_id */
            [  4583] |                 btf_validate_str(0x563f60682fd0, 52, "type name", 9) {
   0.090 us [  4583] |                   btf__str_by_offset(0x563f60682fd0, 52);
   0.350 us [  4583] |                 } /* btf_validate_str */
            [  4583] |                 btf_validate_id(0x563f60682fd0, 3, 9) {
   0.090 us [  4583] |                   btf__type_by_id(0x563f60682fd0, 3);
   0.311 us [  4583] |                 } /* btf_validate_id */
            [  4583] |                 btf_validate_str(0x563f60682fd0, 0, "type name", 10) {
   0.091 us [  4583] |                   btf__str_by_offset(0x563f60682fd0, 0);
   0.331 us [  4583] |                 } /* btf_validate_str */
            [  4583] |                 btf_validate_id(0x563f60682fd0, 5, 10) {
   0.090 us [  4583] |                   btf__type_by_id(0x563f60682fd0, 5);
   0.311 us [  4583] |                 } /* btf_validate_id */
            [  4583] |                 btf_validate_str(0x563f60682fd0, 0, "type name", 11) {
   0.090 us [  4583] |                   btf__str_by_offset(0x563f60682fd0, 0);
   0.340 us [  4583] |                 } /* btf_validate_str */
            [  4583] |                 btf_validate_id(0x563f60682fd0, 10, 11) {
   0.090 us [  4583] |                   btf__type_by_id(0x563f60682fd0, 10);
   0.320 us [  4583] |                 } /* btf_validate_id */
            [  4583] |                 btf_validate_id(0x563f60682fd0, 7, 11) {
   0.090 us [  4583] |                   btf__type_by_id(0x563f60682fd0, 7);
   0.311 us [  4583] |                 } /* btf_validate_id */
            [  4583] |                 btf_validate_str(0x563f60682fd0, 59, "type name", 12) {
   0.091 us [  4583] |                   btf__str_by_offset(0x563f60682fd0, 59);
   0.341 us [  4583] |                 } /* btf_validate_str */
            [  4583] |                 btf_validate_id(0x563f60682fd0, 11, 12) {
   0.100 us [  4583] |                   btf__type_by_id(0x563f60682fd0, 11);
   0.311 us [  4583] |                 } /* btf_validate_id */
            [  4583] |                 btf_validate_str(0x563f60682fd0, 250, "type name", 13) {
   0.100 us [  4583] |                   btf__str_by_offset(0x563f60682fd0, 250);
   0.340 us [  4583] |                 } /* btf_validate_str */
            [  4583] |                 btf_validate_id(0x563f60682fd0, 8, 13) {
   0.100 us [  4583] |                   btf__type_by_id(0x563f60682fd0, 8);
   0.320 us [  4583] |                 } /* btf_validate_id */
            [  4583] |                 btf_validate_str(0x563f60682fd0, 258, "type name", 14) {
   0.100 us [  4583] |                   btf__str_by_offset(0x563f60682fd0, 258);
   0.351 us [  4583] |                 } /* btf_validate_str */
            [  4583] |                 btf_validate_id(0x563f60682fd0, 9, 14) {
   0.091 us [  4583] |                   btf__type_by_id(0x563f60682fd0, 9);
   0.311 us [  4583] |                 } /* btf_validate_id */
            [  4583] |                 btf_validate_str(0x563f60682fd0, 263, "type name", 15) {
   0.100 us [  4583] |                   btf__str_by_offset(0x563f60682fd0, 263);
   0.341 us [  4583] |                 } /* btf_validate_str */
            [  4583] |                 btf_validate_id(0x563f60682fd0, 12, 15) {
   0.100 us [  4583] |                   btf__type_by_id(0x563f60682fd0, 12);
   0.320 us [  4583] |                 } /* btf_validate_id */
   1.117 ms [  4583] |               } = 0x563f60682fd0; /* btf_new */
   1.118 ms [  4583] |             } = 0x563f60682fd0; /* btf__new */
   0.171 us [  4583] |             libbpf_get_error(0x563f60682fd0);
   0.170 us [  4583] |             btf__set_pointer_size(0x563f60682fd0, 8);
            [  4583] |             btf_ext__new(&data.6285, 160) {
   0.691 us [  4583] |               calloc(1, 112) = 0x563f60683050;
   0.451 us [  4583] |               malloc(160) = 0x563f605630d0;
   0.370 us [  4583] |               memcpy(0x563f605630d0, &data.6285, 160);
   0.270 us [  4583] |               btf_ext_setup_info.isra.0();
   0.090 us [  4583] |               btf_ext_setup_info.isra.0();
   0.060 us [  4583] |               btf_ext_setup_info.isra.0();
 497.411 us [  4583] |             } = 0x563f60683050; /* btf_ext__new */
   0.240 us [  4583] |             libbpf_get_error(0x563f60683050);
   0.541 us [  4583] |             calloc(1, 4) = 0x563f606830d0;
            [  4583] |             btf__name_by_offset(0x563f60682fd0, 271) {
   0.180 us [  4583] |               btf__str_by_offset(0x563f60682fd0, 271);
   0.691 us [  4583] |             } /* btf__name_by_offset */
            [  4583] |             elf_sec_by_name(0x563f60682390, "tp/syscalls/sys_enter_write") {
   0.240 us [  4583] |               elf_nextscn();
            [  4583] |               elf_sec_name(0x563f60682390, 0x563f606826f8) {
            [  4583] |                 elf_sec_hdr(0x563f60682390, 0x563f606826f8) {
   0.271 us [  4583] |                   elf64_getshdr();
   0.812 us [  4583] |                 } /* elf_sec_hdr */
            [  4583] |                 elf_sec_str(0x563f60682390, 1) {
   0.641 us [  4583] |                   elf_strptr();
   1.132 us [  4583] |                 } /* elf_sec_str */
   2.324 us [  4583] |               } /* elf_sec_name */
   0.951 us [  4583] |               strcmp(".strtab", "tp/syscalls/sys_enter_write") = -70;
   0.070 us [  4583] |               elf_nextscn();
            [  4583] |               elf_sec_name(0x563f60682390, 0x563f606827c8) {
            [  4583] |                 elf_sec_hdr(0x563f60682390, 0x563f606827c8) {
   0.070 us [  4583] |                   elf64_getshdr();
   0.330 us [  4583] |                 } /* elf_sec_hdr */
            [  4583] |                 elf_sec_str(0x563f60682390, 9) {
   0.100 us [  4583] |                   elf_strptr();
   0.331 us [  4583] |                 } /* elf_sec_str */
   0.942 us [  4583] |               } /* elf_sec_name */
   0.211 us [  4583] |               strcmp(".symtab", "tp/syscalls/sys_enter_write") = -70;
   0.070 us [  4583] |               elf_nextscn();
            [  4583] |               elf_sec_name(0x563f60682390, 0x563f60682898) {
            [  4583] |                 elf_sec_hdr(0x563f60682390, 0x563f60682898) {
   0.070 us [  4583] |                   elf64_getshdr();
   0.300 us [  4583] |                 } /* elf_sec_hdr */
            [  4583] |                 elf_sec_str(0x563f60682390, 17) {
   0.080 us [  4583] |                   elf_strptr();
   0.301 us [  4583] |                 } /* elf_sec_str */
   0.892 us [  4583] |               } /* elf_sec_name */
   0.401 us [  4583] |               strcmp("tp/syscalls/sys_enter_write", "tp/syscalls/sys_enter_write") = 0;
   9.067 us [  4583] |             } = 0x563f60682898; /* elf_sec_by_name */
   0.150 us [  4583] |             elf_ndxscn();
   0.180 us [  4583] |             calloc(1, 4) = 0x563f606830f0;
            [  4583] |             btf__name_by_offset(0x563f60682fd0, 271) {
   0.120 us [  4583] |               btf__str_by_offset(0x563f60682fd0, 271);
   0.381 us [  4583] |             } /* btf__name_by_offset */
            [  4583] |             elf_sec_by_name(0x563f60682390, "tp/syscalls/sys_enter_write") {
   0.080 us [  4583] |               elf_nextscn();
            [  4583] |               elf_sec_name(0x563f60682390, 0x563f606826f8) {
            [  4583] |                 elf_sec_hdr(0x563f60682390, 0x563f606826f8) {
   0.070 us [  4583] |                   elf64_getshdr();
   0.300 us [  4583] |                 } /* elf_sec_hdr */
            [  4583] |                 elf_sec_str(0x563f60682390, 1) {
   0.090 us [  4583] |                   elf_strptr();
   0.330 us [  4583] |                 } /* elf_sec_str */
   0.931 us [  4583] |               } /* elf_sec_name */
   0.151 us [  4583] |               strcmp(".strtab", "tp/syscalls/sys_enter_write") = -70;
   0.060 us [  4583] |               elf_nextscn();
            [  4583] |               elf_sec_name(0x563f60682390, 0x563f606827c8) {
            [  4583] |                 elf_sec_hdr(0x563f60682390, 0x563f606827c8) {
   0.070 us [  4583] |                   elf64_getshdr();
   0.300 us [  4583] |                 } /* elf_sec_hdr */
            [  4583] |                 elf_sec_str(0x563f60682390, 9) {
   0.090 us [  4583] |                   elf_strptr();
   0.301 us [  4583] |                 } /* elf_sec_str */
   0.882 us [  4583] |               } /* elf_sec_name */
   0.141 us [  4583] |               strcmp(".symtab", "tp/syscalls/sys_enter_write") = -70;
   0.060 us [  4583] |               elf_nextscn();
            [  4583] |               elf_sec_name(0x563f60682390, 0x563f60682898) {
            [  4583] |                 elf_sec_hdr(0x563f60682390, 0x563f60682898) {
   0.070 us [  4583] |                   elf64_getshdr();
   0.291 us [  4583] |                 } /* elf_sec_hdr */
            [  4583] |                 elf_sec_str(0x563f60682390, 17) {
   0.080 us [  4583] |                   elf_strptr();
   0.301 us [  4583] |                 } /* elf_sec_str */
   0.872 us [  4583] |               } /* elf_sec_name */
   0.180 us [  4583] |               strcmp("tp/syscalls/sys_enter_write", "tp/syscalls/sys_enter_write") = 0;
   4.669 us [  4583] |             } = 0x563f60682898; /* elf_sec_by_name */
   0.060 us [  4583] |             elf_ndxscn();
            [  4583] |             elf_sec_by_idx(0x563f60682390, 2) {
   0.090 us [  4583] |               elf_getscn();
   0.341 us [  4583] |             } /* elf_sec_by_idx */
            [  4583] |             elf_sec_hdr(0x563f60682390, 0x563f606827c8) {
   0.070 us [  4583] |               elf64_getshdr();
   0.311 us [  4583] |             } /* elf_sec_hdr */
            [  4583] |             btf__find_by_name_kind(0x563f60682fd0, ".ksyms", 15) {
            [  4583] |               btf_find_by_name_kind(0x563f60682fd0, 1, ".ksyms", 15) {
   0.140 us [  4583] |                 btf__type_by_id(0x563f60682fd0, 1);
   0.120 us [  4583] |                 btf__type_by_id(0x563f60682fd0, 2);
   0.090 us [  4583] |                 btf__type_by_id(0x563f60682fd0, 3);
   0.101 us [  4583] |                 btf__type_by_id(0x563f60682fd0, 4);
   0.100 us [  4583] |                 btf__type_by_id(0x563f60682fd0, 5);
   0.100 us [  4583] |                 btf__type_by_id(0x563f60682fd0, 6);
   0.090 us [  4583] |                 btf__type_by_id(0x563f60682fd0, 7);
   0.100 us [  4583] |                 btf__type_by_id(0x563f60682fd0, 8);
   0.091 us [  4583] |                 btf__type_by_id(0x563f60682fd0, 9);
   0.100 us [  4583] |                 btf__type_by_id(0x563f60682fd0, 10);
   0.100 us [  4583] |                 btf__type_by_id(0x563f60682fd0, 11);
   0.091 us [  4583] |                 btf__type_by_id(0x563f60682fd0, 12);
   0.100 us [  4583] |                 btf__type_by_id(0x563f60682fd0, 13);
   0.090 us [  4583] |                 btf__str_by_offset(0x563f60682fd0, 250);
   0.160 us [  4583] |                 strcmp(".ksyms", "license") = -62;
   0.090 us [  4583] |                 btf__type_by_id(0x563f60682fd0, 14);
   0.100 us [  4583] |                 btf__str_by_offset(0x563f60682fd0, 258);
   0.130 us [  4583] |                 strcmp(".ksyms", ".bss") = 9;
   0.100 us [  4583] |                 btf__type_by_id(0x563f60682fd0, 15);
   0.100 us [  4583] |                 btf__str_by_offset(0x563f60682fd0, 263);
   0.131 us [  4583] |                 strcmp(".ksyms", ".rodata") = -7;
   0.161 us [  4583] |                 __errno_location();
   6.071 us [  4583] |               } = -2; /* btf_find_by_name_kind */
   7.063 us [  4583] |             } = -2; /* btf__find_by_name_kind */
            [  4583] |             libbpf_print(LIBBPF_DEBUG, "libbpf: looking for externs among %d symbols...\n") {
   0.070 us [  4583] |               __errno_location();
            [  4583] |               libbpf_print_fn(LIBBPF_DEBUG, "libbpf: looking for externs among %d symbols...\n", 0x7ffdaf1c21a0) {
  63.409 us [  4583] |                 vfprintf();
  64.541 us [  4583] |               } = 47; /* libbpf_print_fn */
  75.572 us [  4583] |             } /* libbpf_print */
            [  4583] |             libbpf_print(LIBBPF_DEBUG, "libbpf: collected %d externs total\n") {
   0.070 us [  4583] |               __errno_location();
            [  4583] |               libbpf_print_fn(LIBBPF_DEBUG, "libbpf: collected %d externs total\n", 0x7ffdaf1c21a0) {
   2.976 us [  4583] |                 vfprintf();
   3.367 us [  4583] |               } = 34; /* libbpf_print_fn */
   4.488 us [  4583] |             } /* libbpf_print */
   0.260 us [  4583] |             btf__type_cnt(0x563f60682fd0);
   0.150 us [  4583] |             btf_type_by_id(0x563f60682fd0, 1);
   0.100 us [  4583] |             btf_type_by_id(0x563f60682fd0, 2);
   0.090 us [  4583] |             btf_type_by_id(0x563f60682fd0, 3);
   0.090 us [  4583] |             btf_type_by_id(0x563f60682fd0, 4);
   0.101 us [  4583] |             btf_type_by_id(0x563f60682fd0, 5);
   0.090 us [  4583] |             btf_type_by_id(0x563f60682fd0, 6);
   0.090 us [  4583] |             btf_type_by_id(0x563f60682fd0, 7);
   0.091 us [  4583] |             btf_type_by_id(0x563f60682fd0, 8);
   0.090 us [  4583] |             btf_type_by_id(0x563f60682fd0, 9);
   0.100 us [  4583] |             btf_type_by_id(0x563f60682fd0, 10);
   0.090 us [  4583] |             btf_type_by_id(0x563f60682fd0, 11);
   0.100 us [  4583] |             btf_type_by_id(0x563f60682fd0, 12);
   0.090 us [  4583] |             btf_type_by_id(0x563f60682fd0, 13);
            [  4583] |             btf_fixup_datasec() {
            [  4583] |               btf__name_by_offset(0x563f60682fd0, 250) {
   0.140 us [  4583] |                 btf__str_by_offset(0x563f60682fd0, 250);
   0.471 us [  4583] |               } /* btf__name_by_offset */
   0.111 us [  4583] |               btf__type_by_id(0x563f60682fd0, 8);
            [  4583] |               btf__name_by_offset(0x563f60682fd0, 44) {
   0.100 us [  4583] |                 btf__str_by_offset(0x563f60682fd0, 44);
   0.330 us [  4583] |               } /* btf__name_by_offset */
            [  4583] |               elf_sym_str(0x563f60682390, 115) {
   0.230 us [  4583] |                 elf_strptr();
   0.701 us [  4583] |               } /* elf_sym_str */
   0.240 us [  4583] |               strcmp("LICENSE", "my_pid") = -33;
            [  4583] |               elf_sym_str(0x563f60682390, 122) {
   0.090 us [  4583] |                 elf_strptr();
   0.311 us [  4583] |               } /* elf_sym_str */
   0.150 us [  4583] |               strcmp("LICENSE", "LICENSE") = 0;
   0.521 us [  4583] |               qsort(0x563f60544adc, 1, 12, &compare_vsi_off);
   4.498 us [  4583] |             } /* btf_fixup_datasec */
   0.090 us [  4583] |             btf_type_by_id(0x563f60682fd0, 14);
            [  4583] |             btf_fixup_datasec() {
            [  4583] |               btf__name_by_offset(0x563f60682fd0, 258) {
   0.091 us [  4583] |                 btf__str_by_offset(0x563f60682fd0, 258);
   0.331 us [  4583] |               } /* btf__name_by_offset */
   0.110 us [  4583] |               btf__type_by_id(0x563f60682fd0, 9);
            [  4583] |               btf__name_by_offset(0x563f60682fd0, 52) {
   0.100 us [  4583] |                 btf__str_by_offset(0x563f60682fd0, 52);
   0.321 us [  4583] |               } /* btf__name_by_offset */
            [  4583] |               elf_sym_str(0x563f60682390, 115) {
   0.090 us [  4583] |                 elf_strptr();
   0.331 us [  4583] |               } /* elf_sym_str */
   0.140 us [  4583] |               strcmp("my_pid", "my_pid") = 0;
   0.160 us [  4583] |               qsort(0x563f60544af4, 1, 12, &compare_vsi_off);
   2.254 us [  4583] |             } /* btf_fixup_datasec */
   0.091 us [  4583] |             btf_type_by_id(0x563f60682fd0, 15);
            [  4583] |             btf_fixup_datasec() {
            [  4583] |               btf__name_by_offset(0x563f60682fd0, 263) {
   0.100 us [  4583] |                 btf__str_by_offset(0x563f60682fd0, 263);
   0.321 us [  4583] |               } /* btf__name_by_offset */
   0.090 us [  4583] |               btf__type_by_id(0x563f60682fd0, 12);
   0.140 us [  4583] |               qsort(0x563f60544b0c, 1, 12, &compare_vsi_off);
   0.972 us [  4583] |             } /* btf_fixup_datasec */
            [  4583] |             bpf_object__init_maps(0x563f60682390, 0x7ffdaf1c2490) {
            [  4583] |               elf_sec_by_idx(0x563f60682390, 5) {
   0.211 us [  4583] |                 elf_getscn();
   1.543 us [  4583] |               } /* elf_sec_by_idx */
            [  4583] |               elf_sec_name(0x563f60682390, 0x563f60682a38) {
            [  4583] |                 elf_sec_hdr(0x563f60682390, 0x563f60682a38) {
   0.301 us [  4583] |                   elf64_getshdr();
   0.812 us [  4583] |                 } /* elf_sec_hdr */
            [  4583] |                 elf_sec_str(0x563f60682390, 53) {
   0.240 us [  4583] |                   elf_strptr();
   0.581 us [  4583] |                 } /* elf_sec_str */
   1.783 us [  4583] |               } /* elf_sec_name */
            [  4583] |               bpf_object__init_internal_map(0x563f60682390, LIBBPF_MAP_BSS, ".bss", 5, 0, 4) {
            [  4583] |                 bpf_object__add_map(0x563f60682390) {
            [  4583] |                   libbpf_ensure_mem(0x563f606823f8, 0x563f60682408, 160, 1) {
            [  4583] |                     libbpf_add_mem(0x563f606823f8, 0x563f60682408, 160, 0, -1, 1) {
   1.062 us [  4583] |                       realloc(0, 2560) = 0x563f60683110;
   0.621 us [  4583] |                       memset(0x563f60683110, 0, 2560);
   2.956 us [  4583] |                     } = 0x563f60683110; /* libbpf_add_mem */
   4.108 us [  4583] |                   } = 0; /* libbpf_ensure_mem */
   4.889 us [  4583] |                 } /* bpf_object__add_map */
   0.702 us [  4583] |                 strdup(".bss") = ".bss";
   0.501 us [  4583] |                 strlen(".bss") = 4;
   0.210 us [  4583] |                 strchr("bss", '.') = "NULL";
   0.101 us [  4583] |                 strlen("minimal_bpf") = 11;
   1.904 us [  4583] |                 __snprintf_chk();
   0.211 us [  4583] |                 __ctype_b_loc();
   0.541 us [  4583] |                 strdup("minimal_.bss") = "minimal_.bss";
            [  4583] |                 map_fill_btf_type_info(0x563f60682390, 0x563f60683110) {
            [  4583] |                   btf__find_by_name(0x563f60682fd0, ".bss") {
   0.180 us [  4583] |                     btf__type_by_id(0x563f60682fd0, 1);
   0.130 us [  4583] |                     btf__str_by_offset(0x563f60682fd0, 0);
   0.310 us [  4583] |                     strcmp(".bss", "") = 46;
   0.110 us [  4583] |                     btf__type_by_id(0x563f60682fd0, 2);
   0.100 us [  4583] |                     btf__str_by_offset(0x563f60682fd0, 0);
   0.150 us [  4583] |                     strcmp(".bss", "") = 46;
   0.090 us [  4583] |                     btf__type_by_id(0x563f60682fd0, 3);
   0.090 us [  4583] |                     btf__str_by_offset(0x563f60682fd0, 5);
   0.140 us [  4583] |                     strcmp(".bss", "int") = -59;
   0.111 us [  4583] |                     btf__type_by_id(0x563f60682fd0, 4);
   0.100 us [  4583] |                     btf__str_by_offset(0x563f60682fd0, 9);
   0.181 us [  4583] |                     strcmp(".bss", "handle_tp") = -58;
   0.090 us [  4583] |                     btf__type_by_id(0x563f60682fd0, 5);
   0.100 us [  4583] |                     btf__str_by_offset(0x563f60682fd0, 19);
   0.130 us [  4583] |                     strcmp(".bss", "char") = -53;
   0.100 us [  4583] |                     btf__type_by_id(0x563f60682fd0, 6);
   0.090 us [  4583] |                     btf__str_by_offset(0x563f60682fd0, 0);
   0.110 us [  4583] |                     strcmp(".bss", "") = 46;
   0.101 us [  4583] |                     btf__type_by_id(0x563f60682fd0, 7);
   0.100 us [  4583] |                     btf__str_by_offset(0x563f60682fd0, 24);
   0.170 us [  4583] |                     strcmp(".bss", "__ARRAY_SIZE_TYPE__") = -49;
   0.100 us [  4583] |                     btf__type_by_id(0x563f60682fd0, 8);
   0.110 us [  4583] |                     btf__str_by_offset(0x563f60682fd0, 44);
   0.170 us [  4583] |                     strcmp(".bss", "LICENSE") = -30;
   0.131 us [  4583] |                     btf__type_by_id(0x563f60682fd0, 9);
   0.120 us [  4583] |                     btf__str_by_offset(0x563f60682fd0, 52);
   0.171 us [  4583] |                     strcmp(".bss", "my_pid") = -63;
   0.120 us [  4583] |                     btf__type_by_id(0x563f60682fd0, 10);
   0.120 us [  4583] |                     btf__str_by_offset(0x563f60682fd0, 0);
   0.170 us [  4583] |                     strcmp(".bss", "") = 46;
   0.140 us [  4583] |                     btf__type_by_id(0x563f60682fd0, 11);
   0.130 us [  4583] |                     btf__str_by_offset(0x563f60682fd0, 0);
   0.160 us [  4583] |                     strcmp(".bss", "") = 46;
   0.121 us [  4583] |                     btf__type_by_id(0x563f60682fd0, 12);
   0.130 us [  4583] |                     btf__str_by_offset(0x563f60682fd0, 59);
   0.210 us [  4583] |                     strcmp(".bss", "handle_tp.____fmt") = -58;
   0.121 us [  4583] |                     btf__type_by_id(0x563f60682fd0, 13);
   0.120 us [  4583] |                     btf__str_by_offset(0x563f60682fd0, 250);
   0.171 us [  4583] |                     strcmp(".bss", "license") = -62;
   0.130 us [  4583] |                     btf__type_by_id(0x563f60682fd0, 14);
   0.120 us [  4583] |                     btf__str_by_offset(0x563f60682fd0, 258);
   0.170 us [  4583] |                     strcmp(".bss", ".bss") = 0;
  21.310 us [  4583] |                   } = 14; /* btf__find_by_name */
  22.983 us [  4583] |                 } = 0; /* map_fill_btf_type_info */
   0.110 us [  4583] |                 btf__type_by_id(0x563f60682fd0, 14);
   0.120 us [  4583] |                 btf__type_by_id(0x563f60682fd0, 9);
            [  4583] |                 libbpf_print(LIBBPF_DEBUG, "libbpf: map '%s' (global data): at sec_idx %d, offset %zu, flags %x.\n") {
   0.230 us [  4583] |                   __errno_location();
            [  4583] |                   libbpf_print_fn(LIBBPF_DEBUG, "libbpf: map '%s' (global data): at sec_idx %d, offset %zu, flags %x.\n", 0x7ffdaf1c2040) {
  56.183 us [  4583] |                     vfprintf();
  57.715 us [  4583] |                   } = 77; /* libbpf_print_fn */
 339.472 us [  4583] |                 } /* libbpf_print */
   0.581 us [  4583] |                 sysconf();
  38.031 us [  4583] |                 mmap64(0, 4096, PROT_WRITE|PROT_READ, MAP_ANON|MAP_SHARED, -1, 0) = 0x7fd56d8cc000;
            [  4583] |                 libbpf_print(LIBBPF_DEBUG, "libbpf: map %td is "%s"\n") {
   0.080 us [  4583] |                   __errno_location();
            [  4583] |                   libbpf_print_fn(LIBBPF_DEBUG, "libbpf: map %td is "%s"\n", 0x7ffdaf1c2040) {
  68.809 us [  4583] |                     vfprintf();
  69.601 us [  4583] |                   } = 32; /* libbpf_print_fn */
  70.903 us [  4583] |                 } /* libbpf_print */
 785.744 us [  4583] |               } = 0; /* bpf_object__init_internal_map */
            [  4583] |               elf_sec_by_idx(0x563f60682390, 6) {
   0.150 us [  4583] |                 elf_getscn();
   0.671 us [  4583] |               } /* elf_sec_by_idx */
            [  4583] |               elf_sec_name(0x563f60682390, 0x563f60682b08) {
            [  4583] |                 elf_sec_hdr(0x563f60682390, 0x563f60682b08) {
   0.150 us [  4583] |                   elf64_getshdr();
   0.761 us [  4583] |                 } /* elf_sec_hdr */
            [  4583] |                 elf_sec_str(0x563f60682390, 58) {
   0.311 us [  4583] |                   elf_strptr();
   0.711 us [  4583] |                 } /* elf_sec_str */
   1.994 us [  4583] |               } /* elf_sec_name */
            [  4583] |               bpf_object__init_internal_map(0x563f60682390, LIBBPF_MAP_RODATA, ".rodata", 6, &data.6285, 28) {
            [  4583] |                 bpf_object__add_map(0x563f60682390) {
   0.230 us [  4583] |                   libbpf_ensure_mem(0x563f606823f8, 0x563f60682408, 160, 2) = 0;
   1.102 us [  4583] |                 } /* bpf_object__add_map */
   0.541 us [  4583] |                 strdup(".rodata") = ".rodata";
   0.190 us [  4583] |                 strlen(".rodata") = 7;
   0.250 us [  4583] |                 strchr("rodata", '.') = "NULL";
   0.211 us [  4583] |                 strlen("minimal_bpf") = 11;
   0.982 us [  4583] |                 __snprintf_chk();
   0.120 us [  4583] |                 __ctype_b_loc();
   0.380 us [  4583] |                 strdup("minimal_.rodata") = "minimal_.rodata";
            [  4583] |                 map_fill_btf_type_info(0x563f60682390, 0x563f606831b0) {
            [  4583] |                   btf__find_by_name(0x563f60682fd0, ".rodata") {
   0.161 us [  4583] |                     btf__type_by_id(0x563f60682fd0, 1);
   0.111 us [  4583] |                     btf__str_by_offset(0x563f60682fd0, 0);
   0.341 us [  4583] |                     strcmp(".rodata", "") = 46;
   0.151 us [  4583] |                     btf__type_by_id(0x563f60682fd0, 2);
   0.130 us [  4583] |                     btf__str_by_offset(0x563f60682fd0, 0);
   0.180 us [  4583] |                     strcmp(".rodata", "") = 46;
   0.131 us [  4583] |                     btf__type_by_id(0x563f60682fd0, 3);
   0.130 us [  4583] |                     btf__str_by_offset(0x563f60682fd0, 5);
   0.201 us [  4583] |                     strcmp(".rodata", "int") = -59;
   0.120 us [  4583] |                     btf__type_by_id(0x563f60682fd0, 4);
   0.120 us [  4583] |                     btf__str_by_offset(0x563f60682fd0, 9);
   0.251 us [  4583] |                     strcmp(".rodata", "handle_tp") = -58;
   0.121 us [  4583] |                     btf__type_by_id(0x563f60682fd0, 5);
   0.130 us [  4583] |                     btf__str_by_offset(0x563f60682fd0, 19);
   0.231 us [  4583] |                     strcmp(".rodata", "char") = -53;
   0.120 us [  4583] |                     btf__type_by_id(0x563f60682fd0, 6);
   0.120 us [  4583] |                     btf__str_by_offset(0x563f60682fd0, 0);
   0.181 us [  4583] |                     strcmp(".rodata", "") = 46;
   0.120 us [  4583] |                     btf__type_by_id(0x563f60682fd0, 7);
   0.120 us [  4583] |                     btf__str_by_offset(0x563f60682fd0, 24);
   0.220 us [  4583] |                     strcmp(".rodata", "__ARRAY_SIZE_TYPE__") = -49;
   0.130 us [  4583] |                     btf__type_by_id(0x563f60682fd0, 8);
   0.131 us [  4583] |                     btf__str_by_offset(0x563f60682fd0, 44);
   0.190 us [  4583] |                     strcmp(".rodata", "LICENSE") = -30;
   0.140 us [  4583] |                     btf__type_by_id(0x563f60682fd0, 9);
   0.131 us [  4583] |                     btf__str_by_offset(0x563f60682fd0, 52);
   0.220 us [  4583] |                     strcmp(".rodata", "my_pid") = -63;
   0.120 us [  4583] |                     btf__type_by_id(0x563f60682fd0, 10);
   0.130 us [  4583] |                     btf__str_by_offset(0x563f60682fd0, 0);
   0.160 us [  4583] |                     strcmp(".rodata", "") = 46;
   0.121 us [  4583] |                     btf__type_by_id(0x563f60682fd0, 11);
   0.120 us [  4583] |                     btf__str_by_offset(0x563f60682fd0, 0);
   0.171 us [  4583] |                     strcmp(".rodata", "") = 46;
   0.120 us [  4583] |                     btf__type_by_id(0x563f60682fd0, 12);
   0.120 us [  4583] |                     btf__str_by_offset(0x563f60682fd0, 59);
   0.230 us [  4583] |                     strcmp(".rodata", "handle_tp.____fmt") = -58;
   0.130 us [  4583] |                     btf__type_by_id(0x563f60682fd0, 13);
   0.131 us [  4583] |                     btf__str_by_offset(0x563f60682fd0, 250);
   0.190 us [  4583] |                     strcmp(".rodata", "license") = -62;
   0.120 us [  4583] |                     btf__type_by_id(0x563f60682fd0, 14);
   0.130 us [  4583] |                     btf__str_by_offset(0x563f60682fd0, 258);
   0.170 us [  4583] |                     strcmp(".rodata", ".bss") = 16;
   0.121 us [  4583] |                     btf__type_by_id(0x563f60682fd0, 15);
   0.120 us [  4583] |                     btf__str_by_offset(0x563f60682fd0, 263);
   0.181 us [  4583] |                     strcmp(".rodata", ".rodata") = 0;
  25.738 us [  4583] |                   } = 15; /* btf__find_by_name */
  26.280 us [  4583] |                 } = 0; /* map_fill_btf_type_info */
   0.130 us [  4583] |                 btf__type_by_id(0x563f60682fd0, 15);
   0.130 us [  4583] |                 btf__type_by_id(0x563f60682fd0, 12);
            [  4583] |                 libbpf_print(LIBBPF_DEBUG, "libbpf: map '%s' (global data): at sec_idx %d, offset %zu, flags %x.\n") {
   0.090 us [  4583] |                   __errno_location();
            [  4583] |                   libbpf_print_fn(LIBBPF_DEBUG, "libbpf: map '%s' (global data): at sec_idx %d, offset %zu, flags %x.\n", 0x7ffdaf1c2040) {
  66.941 us [  4583] |                     vfprintf();
  67.863 us [  4583] |                   } = 79; /* libbpf_print_fn */
  69.226 us [  4583] |                 } /* libbpf_print */
   0.171 us [  4583] |                 sysconf();
  19.977 us [  4583] |                 mmap64(0, 4096, PROT_WRITE|PROT_READ, MAP_ANON|MAP_SHARED, -1, 0) = 0x7fd56d852000;
   7.775 us [  4583] |                 memcpy(0x7fd56d852000, &data.6285, 28);
            [  4583] |                 libbpf_print(LIBBPF_DEBUG, "libbpf: map %td is "%s"\n") {
   0.080 us [  4583] |                   __errno_location();
            [  4583] |                   libbpf_print_fn(LIBBPF_DEBUG, "libbpf: map %td is "%s"\n", 0x7ffdaf1c2040) {
  46.628 us [  4583] |                     vfprintf();
  47.288 us [  4583] |                   } = 35; /* libbpf_print_fn */
  48.301 us [  4583] |                 } /* libbpf_print */
 181.115 us [  4583] |               } = 0; /* bpf_object__init_internal_map */
   1.313 ms [  4583] |             } = 0; /* bpf_object__init_maps */
            [  4583] |             bpf_object__next_program(0x563f60682390, 0) {
   0.641 us [  4583] |               __bpf_program__iter(0, 0x563f60682390, 1);
 354.046 us [  4583] |             } = 0x563f604d3ab0; /* bpf_object__next_program */
            [  4583] |             find_sec_def("tp/syscalls/sys_enter_write") {
            [  4583] |               sec_def_matches.isra.0() {
 306.631 us [  4583] |                 strlen("socket") = 6;
   0.741 us [  4583] |                 strcmp("tp/syscalls/sys_enter_write", "socket") = 1;
 309.457 us [  4583] |               } /* sec_def_matches.isra.0 */
            [  4583] |               sec_def_matches.isra.0() {
   0.250 us [  4583] |                 strlen("sk_reuseport/migrate") = 20;
   0.190 us [  4583] |                 strcmp("tp/syscalls/sys_enter_write", "sk_reuseport/migrate") = 1;
   1.113 us [  4583] |               } /* sec_def_matches.isra.0 */
            [  4583] |               sec_def_matches.isra.0() {
   0.120 us [  4583] |                 strlen("sk_reuseport") = 12;
   0.121 us [  4583] |                 strcmp("tp/syscalls/sys_enter_write", "sk_reuseport") = 1;
   0.591 us [  4583] |               } /* sec_def_matches.isra.0 */
            [  4583] |               sec_def_matches.isra.0() {
   0.080 us [  4583] |                 strlen("kprobe+") = 7;
   0.602 us [  4583] |                 strncmp("tp/syscalls/sys_enter_write", "kprobe+", 6) = 9;
   1.493 us [  4583] |               } /* sec_def_matches.isra.0 */
            [  4583] |               sec_def_matches.isra.0() {
   0.100 us [  4583] |                 strlen("uprobe+") = 7;
   0.170 us [  4583] |                 strncmp("tp/syscalls/sys_enter_write", "uprobe+", 6) = -1;
   0.581 us [  4583] |               } /* sec_def_matches.isra.0 */
            [  4583] |               sec_def_matches.isra.0() {
   0.101 us [  4583] |                 strlen("uprobe.s+") = 9;
   0.170 us [  4583] |                 strncmp("tp/syscalls/sys_enter_write", "uprobe.s+", 8) = -1;
   0.611 us [  4583] |               } /* sec_def_matches.isra.0 */
            [  4583] |               sec_def_matches.isra.0() {
   0.080 us [  4583] |                 strlen("kretprobe+") = 10;
   0.150 us [  4583] |                 strncmp("tp/syscalls/sys_enter_write", "kretprobe+", 9) = 9;
   0.501 us [  4583] |               } /* sec_def_matches.isra.0 */
            [  4583] |               sec_def_matches.isra.0() {
   0.080 us [  4583] |                 strlen("uretprobe+") = 10;
   0.160 us [  4583] |                 strncmp("tp/syscalls/sys_enter_write", "uretprobe+", 9) = -1;
   9.277 us [  4583] |               } /* sec_def_matches.isra.0 */
            [  4583] |               sec_def_matches.isra.0() {
   0.090 us [  4583] |                 strlen("uretprobe.s+") = 12;
   0.130 us [  4583] |                 strncmp("tp/syscalls/sys_enter_write", "uretprobe.s+", 11) = -1;
   0.531 us [  4583] |               } /* sec_def_matches.isra.0 */
            [  4583] |               sec_def_matches.isra.0() {
   0.100 us [  4583] |                 strlen("kprobe.multi+") = 13;
   0.180 us [  4583] |                 strncmp("tp/syscalls/sys_enter_write", "kprobe.multi+", 12) = 9;
   0.562 us [  4583] |               } /* sec_def_matches.isra.0 */
            [  4583] |               sec_def_matches.isra.0() {
   0.110 us [  4583] |                 strlen("kretprobe.multi+") = 16;
   0.141 us [  4583] |                 strncmp("tp/syscalls/sys_enter_write", "kretprobe.multi+", 15) = 9;
   0.571 us [  4583] |               } /* sec_def_matches.isra.0 */
            [  4583] |               sec_def_matches.isra.0() {
   0.090 us [  4583] |                 strlen("uprobe.multi+") = 13;
   0.150 us [  4583] |                 strncmp("tp/syscalls/sys_enter_write", "uprobe.multi+", 12) = -1;
   0.521 us [  4583] |               } /* sec_def_matches.isra.0 */
            [  4583] |               sec_def_matches.isra.0() {
   0.080 us [  4583] |                 strlen("uretprobe.multi+") = 16;
   0.120 us [  4583] |                 strncmp("tp/syscalls/sys_enter_write", "uretprobe.multi+", 15) = -1;
   0.491 us [  4583] |               } /* sec_def_matches.isra.0 */
            [  4583] |               sec_def_matches.isra.0() {
   0.090 us [  4583] |                 strlen("uprobe.multi.s+") = 15;
   0.170 us [  4583] |                 strncmp("tp/syscalls/sys_enter_write", "uprobe.multi.s+", 14) = -1;
   0.572 us [  4583] |               } /* sec_def_matches.isra.0 */
            [  4583] |               sec_def_matches.isra.0() {
   0.110 us [  4583] |                 strlen("uretprobe.multi.s+") = 18;
   0.151 us [  4583] |                 strncmp("tp/syscalls/sys_enter_write", "uretprobe.multi.s+", 17) = -1;
   0.541 us [  4583] |               } /* sec_def_matches.isra.0 */
            [  4583] |               sec_def_matches.isra.0() {
   0.080 us [  4583] |                 strlen("ksyscall+") = 9;
   0.121 us [  4583] |                 strncmp("tp/syscalls/sys_enter_write", "ksyscall+", 8) = 9;
   0.491 us [  4583] |               } /* sec_def_matches.isra.0 */
            [  4583] |               sec_def_matches.isra.0() {
   0.100 us [  4583] |                 strlen("kretsyscall+") = 12;
   0.150 us [  4583] |                 strncmp("tp/syscalls/sys_enter_write", "kretsyscall+", 11) = 9;
   0.531 us [  4583] |               } /* sec_def_matches.isra.0 */
            [  4583] |               sec_def_matches.isra.0() {
   0.090 us [  4583] |                 strlen("usdt+") = 5;
   0.140 us [  4583] |                 strncmp("tp/syscalls/sys_enter_write", "usdt+", 4) = -1;
   0.521 us [  4583] |               } /* sec_def_matches.isra.0 */
            [  4583] |               sec_def_matches.isra.0() {
   0.091 us [  4583] |                 strlen("usdt.s+") = 7;
   0.150 us [  4583] |                 strncmp("tp/syscalls/sys_enter_write", "usdt.s+", 6) = -1;
   0.541 us [  4583] |               } /* sec_def_matches.isra.0 */
            [  4583] |               sec_def_matches.isra.0() {
   0.090 us [  4583] |                 strlen("tc/ingress") = 10;
   0.331 us [  4583] |                 strcmp("tp/syscalls/sys_enter_write", "tc/ingress") = 13;
   0.762 us [  4583] |               } /* sec_def_matches.isra.0 */
            [  4583] |               sec_def_matches.isra.0() {
   0.090 us [  4583] |                 strlen("tc/egress") = 9;
   0.130 us [  4583] |                 strcmp("tp/syscalls/sys_enter_write", "tc/egress") = 13;
   0.501 us [  4583] |               } /* sec_def_matches.isra.0 */
            [  4583] |               sec_def_matches.isra.0() {
   0.080 us [  4583] |                 strlen("tcx/ingress") = 11;
   0.120 us [  4583] |                 strcmp("tp/syscalls/sys_enter_write", "tcx/ingress") = 13;
   0.521 us [  4583] |               } /* sec_def_matches.isra.0 */
            [  4583] |               sec_def_matches.isra.0() {
   0.090 us [  4583] |                 strlen("tcx/egress") = 10;
   0.120 us [  4583] |                 strcmp("tp/syscalls/sys_enter_write", "tcx/egress") = 13;
   0.491 us [  4583] |               } /* sec_def_matches.isra.0 */
            [  4583] |               sec_def_matches.isra.0() {
   0.091 us [  4583] |                 strlen("tc") = 2;
   0.110 us [  4583] |                 strcmp("tp/syscalls/sys_enter_write", "tc") = 13;
   0.511 us [  4583] |               } /* sec_def_matches.isra.0 */
            [  4583] |               sec_def_matches.isra.0() {
   0.081 us [  4583] |                 strlen("classifier") = 10;
   0.120 us [  4583] |                 strcmp("tp/syscalls/sys_enter_write", "classifier") = 17;
   0.501 us [  4583] |               } /* sec_def_matches.isra.0 */
            [  4583] |               sec_def_matches.isra.0() {
   0.080 us [  4583] |                 strlen("action") = 6;
   0.240 us [  4583] |                 strcmp("tp/syscalls/sys_enter_write", "action") = 19;
   0.622 us [  4583] |               } /* sec_def_matches.isra.0 */
            [  4583] |               sec_def_matches.isra.0() {
   0.080 us [  4583] |                 strlen("tracepoint+") = 11;
   0.141 us [  4583] |                 strncmp("tp/syscalls/sys_enter_write", "tracepoint+", 10) = -2;
   0.521 us [  4583] |               } /* sec_def_matches.isra.0 */
            [  4583] |               sec_def_matches.isra.0() {
   0.080 us [  4583] |                 strlen("tp+") = 3;
   0.151 us [  4583] |                 strncmp("tp/syscalls/sys_enter_write", "tp+", 2) = 0;
   0.541 us [  4583] |               } /* sec_def_matches.isra.0 */
 338.070 us [  4583] |             } /* find_sec_def */
            [  4583] |             bpf_object__next_program(0x563f60682390, 0x563f604d3ab0) {
   0.131 us [  4583] |               __bpf_program__iter(0x563f604d3ab0, 0x563f60682390, 1);
   0.651 us [  4583] |             } = 0; /* bpf_object__next_program */
            [  4583] |             elf_sec_by_idx(0x563f60682390, 3) {
   0.211 us [  4583] |               elf_getscn();
   1.423 us [  4583] |             } /* elf_sec_by_idx */
            [  4583] |             elf_sec_data(0x563f60682390, 0x563f60682898) {
   0.271 us [  4583] |               elf_getdata();
   0.962 us [  4583] |             } /* elf_sec_data */
            [  4583] |             elf_sec_str(0x563f60682390, 130) {
   0.280 us [  4583] |               elf_strptr();
  10.029 us [  4583] |             } /* elf_sec_str */
            [  4583] |             elf_sec_name(0x563f60682390, 0x563f60682898) {
            [  4583] |               elf_sec_hdr(0x563f60682390, 0x563f60682898) {
   0.100 us [  4583] |                 elf64_getshdr();
   0.531 us [  4583] |               } /* elf_sec_hdr */
            [  4583] |               elf_sec_str(0x563f60682390, 17) {
   0.080 us [  4583] |                 elf_strptr();
   0.351 us [  4583] |               } /* elf_sec_str */
   1.223 us [  4583] |             } /* elf_sec_name */
            [  4583] |             libbpf_print(LIBBPF_DEBUG, "libbpf: sec '%s': collecting relocation for section(%zu) '%s'\n") {
   0.060 us [  4583] |               __errno_location();
            [  4583] |               libbpf_print_fn(LIBBPF_DEBUG, "libbpf: sec '%s': collecting relocation for section(%zu) '%s'\n", 0x7ffdaf1c21a0) {
  53.573 us [  4583] |                 vfprintf();
  54.505 us [  4583] |               } = 114; /* libbpf_print_fn */
  55.937 us [  4583] |             } /* libbpf_print */
            [  4583] |             elf_sym_str(0x563f60682390, 115) {
   0.100 us [  4583] |               elf_strptr();
   0.471 us [  4583] |             } /* elf_sym_str */
            [  4583] |             libbpf_print(LIBBPF_DEBUG, "libbpf: sec '%s': relo #%d: insn #%u against '%s'\n") {
   0.071 us [  4583] |               __errno_location();
            [  4583] |               libbpf_print_fn(LIBBPF_DEBUG, "libbpf: sec '%s': relo #%d: insn #%u against '%s'\n", 0x7ffdaf1c21a0) {
   3.917 us [  4583] |                 vfprintf();
   4.458 us [  4583] |               } = 81; /* libbpf_print_fn */
   5.300 us [  4583] |             } /* libbpf_print */
   0.341 us [  4583] |             find_prog_by_sec_insn(0x563f60682390, 3, 2) = 0x563f604d3ab0;
   0.471 us [  4583] |             realloc(0, 24) = 0x563f60683ba0;
            [  4583] |             elf_sec_by_idx(0x563f60682390, 5) {
   0.100 us [  4583] |               elf_getscn();
   0.401 us [  4583] |             } /* elf_sec_by_idx */
            [  4583] |             elf_sec_name(0x563f60682390, 0x563f60682a38) {
            [  4583] |               elf_sec_hdr(0x563f60682390, 0x563f60682a38) {
   0.080 us [  4583] |                 elf64_getshdr();
   0.461 us [  4583] |               } /* elf_sec_hdr */
            [  4583] |               elf_sec_str(0x563f60682390, 53) {
   0.100 us [  4583] |                 elf_strptr();
   0.370 us [  4583] |               } /* elf_sec_str */
   1.203 us [  4583] |             } /* elf_sec_name */
            [  4583] |             libbpf_print(LIBBPF_DEBUG, "libbpf: prog '%s': found data map %zd (%s, sec %d, off %zu) for insn %u\n") {
   0.070 us [  4583] |               __errno_location();
            [  4583] |               libbpf_print_fn(LIBBPF_DEBUG, "libbpf: prog '%s': found data map %zd (%s, sec %d, off %zu) for insn %u\n", 0x7ffdaf1c2190) {
   3.626 us [  4583] |                 vfprintf();
   4.098 us [  4583] |               } = 83; /* libbpf_print_fn */
   4.809 us [  4583] |             } /* libbpf_print */
            [  4583] |             elf_sec_by_idx(0x563f60682390, 6) {
   0.080 us [  4583] |               elf_getscn();
   0.411 us [  4583] |             } /* elf_sec_by_idx */
            [  4583] |             elf_sec_name(0x563f60682390, 0x563f60682b08) {
            [  4583] |               elf_sec_hdr(0x563f60682390, 0x563f60682b08) {
   0.070 us [  4583] |                 elf64_getshdr();
   0.350 us [  4583] |               } /* elf_sec_hdr */
            [  4583] |               elf_sec_str(0x563f60682390, 58) {
   0.090 us [  4583] |                 elf_strptr();
   0.351 us [  4583] |               } /* elf_sec_str */
   1.052 us [  4583] |             } /* elf_sec_name */
            [  4583] |             libbpf_print(LIBBPF_DEBUG, "libbpf: sec '%s': relo #%d: insn #%u against '%s'\n") {
   0.070 us [  4583] |               __errno_location();
            [  4583] |               libbpf_print_fn(LIBBPF_DEBUG, "libbpf: sec '%s': relo #%d: insn #%u against '%s'\n", 0x7ffdaf1c21a0) {
  43.370 us [  4583] |                 vfprintf();
  43.872 us [  4583] |               } = 82; /* libbpf_print_fn */
  44.542 us [  4583] |             } /* libbpf_print */
   0.130 us [  4583] |             find_prog_by_sec_insn(0x563f60682390, 3, 6) = 0x563f604d3ab0;
   0.541 us [  4583] |             realloc(0x563f60683ba0, 48) = 0x563f60683ba0;
            [  4583] |             elf_sec_by_idx(0x563f60682390, 6) {
   0.060 us [  4583] |               elf_getscn();
   0.360 us [  4583] |             } /* elf_sec_by_idx */
            [  4583] |             elf_sec_name(0x563f60682390, 0x563f60682b08) {
            [  4583] |               elf_sec_hdr(0x563f60682390, 0x563f60682b08) {
   0.060 us [  4583] |                 elf64_getshdr();
   0.350 us [  4583] |               } /* elf_sec_hdr */
            [  4583] |               elf_sec_str(0x563f60682390, 58) {
   0.080 us [  4583] |                 elf_strptr();
   0.340 us [  4583] |               } /* elf_sec_str */
   1.021 us [  4583] |             } /* elf_sec_name */
            [  4583] |             libbpf_print(LIBBPF_DEBUG, "libbpf: prog '%s': found data map %zd (%s, sec %d, off %zu) for insn %u\n") {
   0.040 us [  4583] |               __errno_location();
            [  4583] |               libbpf_print_fn(LIBBPF_DEBUG, "libbpf: prog '%s': found data map %zd (%s, sec %d, off %zu) for insn %u\n", 0x7ffdaf1c2190) {
  42.911 us [  4583] |                 vfprintf();
  43.401 us [  4583] |               } = 86; /* libbpf_print_fn */
  44.133 us [  4583] |             } /* libbpf_print */
            [  4583] |             bpf_object__sort_relos(0x563f60682390) {
            [  4583] |               qsort(0x563f60683ba0, 2, 24, &cmp_relocs) {
   0.071 us [  4583] |                 cmp_relocs(0x563f60683ba0, 0x563f60683bb8);
   1.112 us [  4583] |               } /* qsort */
   1.522 us [  4583] |             } /* bpf_object__sort_relos */
            [  4583] |             bpf_object__elf_finish(0x563f60682390) {
   0.821 us [  4583] |               elf_end();
   0.280 us [  4583] |               free(0x563f60682e80);
   1.924 us [  4583] |             } /* bpf_object__elf_finish */
   9.960 ms [  4583] |           } /* bpf_object_open */
  10.442 ms [  4583] |         } /* bpf_object__open_mem */
   0.070 us [  4583] |         libbpf_get_error(0x563f60682390);
            [  4583] |         populate_skeleton_maps(0x563f60682390, 0x563f606812b0, 2) {
            [  4583] |           bpf_object__find_map_by_name(0x563f60682390, "minimal_.bss") {
   0.060 us [  4583] |             map_uses_real_name.isra.0();
   0.331 us [  4583] |             strcmp("minimal_.bss", "minimal_.bss") = 0;
   1.272 us [  4583] |           } = 0x563f60683110; /* bpf_object__find_map_by_name */
            [  4583] |           bpf_object__find_map_by_name(0x563f60682390, "minimal_.rodata") {
   0.050 us [  4583] |             map_uses_real_name.isra.0();
   0.200 us [  4583] |             strcmp("minimal_.bss", "minimal_.rodata") = -16;
   0.160 us [  4583] |             __bpf_map__iter(0x563f60683110, 0x563f60682390, 1);
   0.151 us [  4583] |             map_uses_real_name.isra.0();
   0.230 us [  4583] |             strcmp("minimal_.rodata", "minimal_.rodata") = 0;
   2.184 us [  4583] |           } = 0x563f606831b0; /* bpf_object__find_map_by_name */
   4.528 us [  4583] |         } = 0; /* populate_skeleton_maps */
            [  4583] |         populate_skeleton_progs(0x563f60682390, 0x563f606812f0, 1) {
            [  4583] |           bpf_object__find_program_by_name(0x563f60682390, "handle_tp") {
            [  4583] |             bpf_object__next_program(0x563f60682390, 0) {
   0.180 us [  4583] |               __bpf_program__iter(0, 0x563f60682390, 1);
   0.722 us [  4583] |             } = 0x563f604d3ab0; /* bpf_object__next_program */
   0.260 us [  4583] |             strcmp("handle_tp", "handle_tp") = 0;
   9.518 us [  4583] |           } /* bpf_object__find_program_by_name */
  10.019 us [  4583] |         } = 0; /* populate_skeleton_progs */
  10.877 ms [  4583] |       } = 0; /* bpf_object__open_skeleton */
  11.527 ms [  4583] |     } = 0x563f60681220; /* minimal_bpf__open_opts */
  11.528 ms [  4583] |   } = 0x563f60681220; /* minimal_bpf__open */
   0.832 us [  4583] |   getpid() = 4583;
            [  4583] |   minimal_bpf__load(0x563f60681220) {
            [  4583] |     bpf_object__load_skeleton(0x563f60681260) {
            [  4583] |       bpf_object_load.constprop.0() {
            [  4583] |         bump_rlimit_memlock() {
            [  4583] |           kernel_supports(0, FEAT_MEMCG_ACCOUNT) {
            [  4583] |             kernel_supports.part.0() {
            [  4583] |               probe_memcg_account() {
 116.539 us [  4583] |                 syscall(321) = 4;
   5.400 us [  4583] |                 close(4) = 0;
 124.003 us [  4583] |               } = 1; /* probe_memcg_account */
 125.265 us [  4583] |             } /* kernel_supports.part.0 */
 416.531 us [  4583] |           } /* kernel_supports */
 417.613 us [  4583] |         } /* bump_rlimit_memlock */
            [  4583] |         bpf_prog_load(BPF_PROG_TYPE_SOCKET_FILTER, "NULL", "GPL", 0x7ffdaf1c2450, 2, 0) {
            [  4583] |           bump_rlimit_memlock() {
            [  4583] |             kernel_supports(0, FEAT_MEMCG_ACCOUNT) {
   0.051 us [  4583] |               kernel_supports.part.0();
   0.581 us [  4583] |             } /* kernel_supports */
   0.982 us [  4583] |           } /* bump_rlimit_memlock */
            [  4583] |           sys_bpf_prog_load(0x7ffdaf1c22a0, 144, 5) {
  36.969 us [  4583] |             syscall(321) = 4;
  39.083 us [  4583] |           } = 4; /* sys_bpf_prog_load */
 334.465 us [  4583] |         } = 4; /* bpf_prog_load */
   4.288 us [  4583] |         close(4) = 0;
            [  4583] |         obj_needs_vmlinux_btf(0x563f60682390) {
            [  4583] |           bpf_object__next_program(0x563f60682390, 0) {
   0.141 us [  4583] |             __bpf_program__iter(0, 0x563f60682390, 1);
   0.772 us [  4583] |           } = 0x563f604d3ab0; /* bpf_object__next_program */
            [  4583] |           bpf_object__next_program(0x563f60682390, 0x563f604d3ab0) {
   0.101 us [  4583] |             __bpf_program__iter(0x563f604d3ab0, 0x563f60682390, 1);
   0.341 us [  4583] |           } = 0; /* bpf_object__next_program */
   1.673 us [  4583] |         } = 0; /* obj_needs_vmlinux_btf */
            [  4583] |         kernel_supports.part.0() {
            [  4583] |           probe_kern_btf() {
            [  4583] |             libbpf__load_raw_btf("", 16, "", 5) {
   0.812 us [  4583] |               malloc(45) = 0x563f60682550;
   0.260 us [  4583] |               memcpy(0x563f60682568, 0x7ffdaf1c2310, 16);
   0.120 us [  4583] |               memcpy(0x563f60682578, &strs.12581, 5);
            [  4583] |               bpf_btf_load(0x563f60682550, 45, 0) {
            [  4583] |                 bump_rlimit_memlock() {
            [  4583] |                   kernel_supports(0, FEAT_MEMCG_ACCOUNT) {
   0.100 us [  4583] |                     kernel_supports.part.0();
   0.471 us [  4583] |                   } /* kernel_supports */
   0.872 us [  4583] |                 } /* bump_rlimit_memlock */
  13.315 us [  4583] |                 syscall(321) = 4;
  15.129 us [  4583] |               } = 4; /* bpf_btf_load */
   0.191 us [  4583] |               free(0x563f60682550);
  19.777 us [  4583] |             } = 4; /* libbpf__load_raw_btf */
   3.687 us [  4583] |             close(4) = 0;
  24.627 us [  4583] |           } = 1; /* probe_kern_btf */
  25.478 us [  4583] |         } /* kernel_supports.part.0 */
            [  4583] |         kernel_supports.part.0() {
            [  4583] |           probe_kern_btf_decl_tag() {
            [  4583] |             libbpf__load_raw_btf("", 48, "", 5) {
   0.220 us [  4583] |               malloc(77) = 0x563f60525440;
   0.170 us [  4583] |               memcpy(0x563f60525458, 0x7ffdaf1c22f0, 48);
   0.100 us [  4583] |               memcpy(0x563f60525488, &strs.12606, 5);
            [  4583] |               bpf_btf_load(0x563f60525440, 77, 0) {
            [  4583] |                 bump_rlimit_memlock() {
            [  4583] |                   kernel_supports(0, FEAT_MEMCG_ACCOUNT) {
   0.080 us [  4583] |                     kernel_supports.part.0();
   0.370 us [  4583] |                   } /* kernel_supports */
   0.591 us [  4583] |                 } /* bump_rlimit_memlock */
   7.825 us [  4583] |                 syscall(321) = 4;
   8.887 us [  4583] |               } = 4; /* bpf_btf_load */
   0.110 us [  4583] |               free(0x563f60525440);
  10.801 us [  4583] |             } = 4; /* libbpf__load_raw_btf */
   2.425 us [  4583] |             close(4) = 0;
  13.706 us [  4583] |           } = 1; /* probe_kern_btf_decl_tag */
  14.156 us [  4583] |         } /* kernel_supports.part.0 */
   0.180 us [  4583] |         btf__type_cnt(0x563f60682fd0);
   0.130 us [  4583] |         btf_type_by_id(0x563f60682fd0, 1);
   0.080 us [  4583] |         btf_type_by_id(0x563f60682fd0, 2);
   0.071 us [  4583] |         btf_type_by_id(0x563f60682fd0, 3);
   0.070 us [  4583] |         btf_type_by_id(0x563f60682fd0, 4);
   0.070 us [  4583] |         btf_type_by_id(0x563f60682fd0, 5);
   0.071 us [  4583] |         btf_type_by_id(0x563f60682fd0, 6);
   0.070 us [  4583] |         btf_type_by_id(0x563f60682fd0, 7);
   0.070 us [  4583] |         btf_type_by_id(0x563f60682fd0, 8);
   0.070 us [  4583] |         btf_type_by_id(0x563f60682fd0, 9);
   0.080 us [  4583] |         btf_type_by_id(0x563f60682fd0, 10);
   0.070 us [  4583] |         btf_type_by_id(0x563f60682fd0, 11);
   0.070 us [  4583] |         btf_type_by_id(0x563f60682fd0, 12);
   0.070 us [  4583] |         btf_type_by_id(0x563f60682fd0, 13);
   0.070 us [  4583] |         btf_type_by_id(0x563f60682fd0, 14);
   0.070 us [  4583] |         btf_type_by_id(0x563f60682fd0, 15);
            [  4583] |         kernel_supports.part.0() {
            [  4583] |           probe_kern_btf_func_global() {
            [  4583] |             libbpf__load_raw_btf("", 48, "", 9) {
   0.100 us [  4583] |               malloc(81) = 0x563f60525440;
   0.111 us [  4583] |               memcpy(0x563f60525458, 0x7ffdaf1c22f0, 48);
   0.090 us [  4583] |               memcpy(0x563f60525488, &strs.12591, 9);
            [  4583] |               bpf_btf_load(0x563f60525440, 81, 0) {
            [  4583] |                 bump_rlimit_memlock() {
            [  4583] |                   kernel_supports(0, FEAT_MEMCG_ACCOUNT) {
   0.040 us [  4583] |                     kernel_supports.part.0();
   0.240 us [  4583] |                   } /* kernel_supports */
   0.420 us [  4583] |                 } /* bump_rlimit_memlock */
   6.331 us [  4583] |                 syscall(321) = 4;
   7.124 us [  4583] |               } = 4; /* bpf_btf_load */
   0.090 us [  4583] |               free(0x563f60525440);
   8.576 us [  4583] |             } = 4; /* libbpf__load_raw_btf */
   2.214 us [  4583] |             close(4) = 0;
  11.201 us [  4583] |           } = 1; /* probe_kern_btf_func_global */
  11.601 us [  4583] |         } /* kernel_supports.part.0 */
            [  4583] |         kernel_supports.part.0() {
            [  4583] |           probe_kern_btf_datasec() {
            [  4583] |             libbpf__load_raw_btf("", 56, "", 9) {
   0.210 us [  4583] |               malloc(89) = 0x563f60584a50;
   0.101 us [  4583] |               memcpy(0x563f60584a68, 0x7ffdaf1c22f0, 56);
   0.090 us [  4583] |               memcpy(0x563f60584aa0, &strs.12596, 9);
            [  4583] |               bpf_btf_load(0x563f60584a50, 89, 0) {
            [  4583] |                 bump_rlimit_memlock() {
            [  4583] |                   kernel_supports(0, FEAT_MEMCG_ACCOUNT) {
   0.050 us [  4583] |                     kernel_supports.part.0();
   0.260 us [  4583] |                   } /* kernel_supports */
   0.400 us [  4583] |                 } /* bump_rlimit_memlock */
   6.702 us [  4583] |                 syscall(321) = 4;
  18.054 us [  4583] |               } = 4; /* bpf_btf_load */
   0.110 us [  4583] |               free(0x563f60584a50);
  19.517 us [  4583] |             } = 4; /* libbpf__load_raw_btf */
   2.615 us [  4583] |             close(4) = 0;
  22.542 us [  4583] |           } = 1; /* probe_kern_btf_datasec */
  22.963 us [  4583] |         } /* kernel_supports.part.0 */
            [  4583] |         kernel_supports.part.0() {
            [  4583] |           probe_kern_btf_float() {
            [  4583] |             libbpf__load_raw_btf("", 12, "", 7) {
   0.081 us [  4583] |               malloc(43) = 0x563f60682550;
   0.100 us [  4583] |               memcpy(0x563f60682568, 0x7ffdaf1c231c, 12);
   0.101 us [  4583] |               memcpy(0x563f60682574, &strs.12601, 7);
            [  4583] |               bpf_btf_load(0x563f60682550, 43, 0) {
            [  4583] |                 bump_rlimit_memlock() {
            [  4583] |                   kernel_supports(0, FEAT_MEMCG_ACCOUNT) {
   0.050 us [  4583] |                     kernel_supports.part.0();
   0.261 us [  4583] |                   } /* kernel_supports */
   0.431 us [  4583] |                 } /* bump_rlimit_memlock */
   8.516 us [  4583] |                 syscall(321) = 4;
   9.327 us [  4583] |               } = 4; /* bpf_btf_load */
   0.100 us [  4583] |               free(0x563f60682550);
  10.730 us [  4583] |             } = 4; /* libbpf__load_raw_btf */
   2.846 us [  4583] |             close(4) = 0;
  13.986 us [  4583] |           } = 1; /* probe_kern_btf_float */
  14.527 us [  4583] |         } /* kernel_supports.part.0 */
            [  4583] |         kernel_supports.part.0() {
            [  4583] |           probe_kern_btf_func() {
            [  4583] |             libbpf__load_raw_btf("", 48, "", 9) {
   0.081 us [  4583] |               malloc(81) = 0x563f60525440;
   0.110 us [  4583] |               memcpy(0x563f60525458, 0x7ffdaf1c22f0, 48);
   0.100 us [  4583] |               memcpy(0x563f60525488, &strs.12586, 9);
            [  4583] |               bpf_btf_load(0x563f60525440, 81, 0) {
            [  4583] |                 bump_rlimit_memlock() {
            [  4583] |                   kernel_supports(0, FEAT_MEMCG_ACCOUNT) {
   0.050 us [  4583] |                     kernel_supports.part.0();
   0.251 us [  4583] |                   } /* kernel_supports */
   0.421 us [  4583] |                 } /* bump_rlimit_memlock */
   6.682 us [  4583] |                 syscall(321) = 4;
   7.484 us [  4583] |               } = 4; /* bpf_btf_load */
   0.100 us [  4583] |               free(0x563f60525440);
   8.776 us [  4583] |             } = 4; /* libbpf__load_raw_btf */
   2.174 us [  4583] |             close(4) = 0;
  11.331 us [  4583] |           } = 1; /* probe_kern_btf_func */
  11.641 us [  4583] |         } /* kernel_supports.part.0 */
   0.060 us [  4583] |         kernel_supports.part.0();
            [  4583] |         kernel_supports.part.0() {
            [  4583] |           probe_kern_btf_type_tag() {
            [  4583] |             libbpf__load_raw_btf("", 40, "", 5) {
   0.371 us [  4583] |               malloc(69) = 0x563f6063b7f0;
   0.100 us [  4583] |               memcpy(0x563f6063b808, 0x7ffdaf1c2300, 40);
   0.101 us [  4583] |               memcpy(0x563f6063b830, &strs.12611, 5);
            [  4583] |               bpf_btf_load(0x563f6063b7f0, 69, 0) {
            [  4583] |                 bump_rlimit_memlock() {
            [  4583] |                   kernel_supports(0, FEAT_MEMCG_ACCOUNT) {
   0.040 us [  4583] |                     kernel_supports.part.0();
   0.261 us [  4583] |                   } /* kernel_supports */
   0.421 us [  4583] |                 } /* bump_rlimit_memlock */
   6.562 us [  4583] |                 syscall(321) = 4;
   7.374 us [  4583] |               } = 4; /* bpf_btf_load */
   0.100 us [  4583] |               free(0x563f6063b7f0);
   8.936 us [  4583] |             } = 4; /* libbpf__load_raw_btf */
   2.134 us [  4583] |             close(4) = 0;
  11.472 us [  4583] |           } = 1; /* probe_kern_btf_type_tag */
  12.163 us [  4583] |         } /* kernel_supports.part.0 */
            [  4583] |         kernel_supports.part.0() {
            [  4583] |           probe_kern_btf_enum64() {
            [  4583] |             libbpf__load_raw_btf("", 12, "", 8) {
   0.091 us [  4583] |               malloc(44) = 0x563f60682550;
   0.100 us [  4583] |               memcpy(0x563f60682568, 0x7ffdaf1c231c, 12);
   0.081 us [  4583] |               memcpy(0x563f60682574, &strs.12702, 8);
            [  4583] |               bpf_btf_load(0x563f60682550, 44, 0) {
            [  4583] |                 bump_rlimit_memlock() {
            [  4583] |                   kernel_supports(0, FEAT_MEMCG_ACCOUNT) {
   0.040 us [  4583] |                     kernel_supports.part.0();
   0.291 us [  4583] |                   } /* kernel_supports */
   0.451 us [  4583] |                 } /* bump_rlimit_memlock */
   5.841 us [  4583] |                 syscall(321) = 4;
   6.682 us [  4583] |               } = 4; /* bpf_btf_load */
   0.100 us [  4583] |               free(0x563f60682550);
   8.115 us [  4583] |             } = 4; /* libbpf__load_raw_btf */
   2.195 us [  4583] |             close(4) = 0;
  10.720 us [  4583] |           } = 1; /* probe_kern_btf_enum64 */
  11.241 us [  4583] |         } /* kernel_supports.part.0 */
            [  4583] |         btf_load_into_kernel(0x563f60682fd0, "NULL", 0, 0) {
   0.331 us [  4583] |           btf_get_raw_data(0x563f60682fd0, 0x7ffdaf1c22ec, 0) = 0x563f605449f0;
            [  4583] |           bpf_btf_load(0x563f605449f0, 595, 0x7ffdaf1c22f0) {
            [  4583] |             bump_rlimit_memlock() {
            [  4583] |               kernel_supports(0, FEAT_MEMCG_ACCOUNT) {
   0.071 us [  4583] |                 kernel_supports.part.0();
   0.731 us [  4583] |               } /* kernel_supports */
   1.222 us [  4583] |             } /* bump_rlimit_memlock */
  15.169 us [  4583] |             syscall(321) = 4;
  17.513 us [  4583] |           } = 4; /* bpf_btf_load */
   0.200 us [  4583] |           free(0);
  20.648 us [  4583] |         } = 0; /* btf_load_into_kernel */
            [  4583] |         kernel_supports.part.0() {
            [  4583] |           probe_kern_array_mmap() {
            [  4583] |             bpf_map_create(BPF_MAP_TYPE_ARRAY, "libbpf_mmap", 4, 4, 1, 0x7ffdaf1c22f0) {
            [  4583] |               bump_rlimit_memlock() {
            [  4583] |                 kernel_supports(0, FEAT_MEMCG_ACCOUNT) {
   0.060 us [  4583] |                   kernel_supports.part.0();
   0.391 us [  4583] |                 } /* kernel_supports */
   0.551 us [  4583] |               } /* bump_rlimit_memlock */
            [  4583] |               kernel_supports(0, FEAT_PROG_NAME) {
            [  4583] |                 kernel_supports.part.0() {
            [  4583] |                   probe_kern_prog_name() {
            [  4583] |                     sys_bpf_prog_load(0x7ffdaf1c2110, 64, 5) {
  34.855 us [  4583] |                       syscall(321) = 5;
  35.496 us [  4583] |                     } = 5; /* sys_bpf_prog_load */
   3.857 us [  4583] |                     close(5) = 0;
  40.256 us [  4583] |                   } = 1; /* probe_kern_prog_name */
  40.856 us [  4583] |                 } /* kernel_supports.part.0 */
  40.987 us [  4583] |               } /* kernel_supports */
  10.049 us [  4583] |               syscall(321) = 5;
  53.080 us [  4583] |             } = 5; /* bpf_map_create */
  51.507 us [  4583] |             close(5) = 0;
 105.418 us [  4583] |           } = 1; /* probe_kern_array_mmap */
 106.209 us [  4583] |         } /* kernel_supports.part.0 */
   0.170 us [  4583] |         __bpf_map__iter(0x563f60683110, 0x563f60682390, 1);
   0.050 us [  4583] |         kernel_supports.part.0();
   0.080 us [  4583] |         __bpf_map__iter(0x563f606831b0, 0x563f60682390, 1);
            [  4583] |         bpf_object__create_maps(0x563f60682390) {
            [  4583] |           kernel_supports.part.0() {
            [  4583] |             probe_kern_global_data() {
            [  4583] |               bpf_map_create(BPF_MAP_TYPE_ARRAY, "libbpf_global", 4, 32, 1, 0) {
            [  4583] |                 bump_rlimit_memlock() {
            [  4583] |                   kernel_supports(0, FEAT_MEMCG_ACCOUNT) {
   0.080 us [  4583] |                     kernel_supports.part.0();
   0.631 us [  4583] |                   } /* kernel_supports */
   1.002 us [  4583] |                 } /* bump_rlimit_memlock */
            [  4583] |                 kernel_supports(0, FEAT_PROG_NAME) {
   0.050 us [  4583] |                   kernel_supports.part.0();
   0.301 us [  4583] |                 } /* kernel_supports */
  10.359 us [  4583] |                 syscall(321) = 5;
  21.029 us [  4583] |               } = 5; /* bpf_map_create */
            [  4583] |               bpf_prog_load(BPF_PROG_TYPE_SOCKET_FILTER, "NULL", "GPL", 0x7ffdaf1c2120, 5, 0) {
            [  4583] |                 bump_rlimit_memlock() {
            [  4583] |                   kernel_supports(0, FEAT_MEMCG_ACCOUNT) {
   0.040 us [  4583] |                     kernel_supports.part.0();
   0.270 us [  4583] |                   } /* kernel_supports */
   0.411 us [  4583] |                 } /* bump_rlimit_memlock */
            [  4583] |                 sys_bpf_prog_load(0x7ffdaf1c2040, 144, 5) {
  39.013 us [  4583] |                   syscall(321) = 6;
  39.555 us [  4583] |                 } = 6; /* sys_bpf_prog_load */
  40.596 us [  4583] |               } = 6; /* bpf_prog_load */
   3.015 us [  4583] |               close(5) = 0;
   2.374 us [  4583] |               close(6) = 0;
  68.369 us [  4583] |             } = 1; /* probe_kern_global_data */
  69.781 us [  4583] |           } /* kernel_supports.part.0 */
            [  4583] |           bpf_object__create_map(0x563f60682390, 0x563f60683110, 0) {
   0.060 us [  4583] |             kernel_supports.part.0();
   0.381 us [  4583] |             btf__fd(0x563f60682fd0) = 4;
   0.060 us [  4583] |             btf__fd(0x563f60682fd0) = 4;
            [  4583] |             bpf_map_create(BPF_MAP_TYPE_ARRAY, "minimal_.bss", 4, 4, 1, 0x7ffdaf1c2130) {
            [  4583] |               bump_rlimit_memlock() {
            [  4583] |                 kernel_supports(0, FEAT_MEMCG_ACCOUNT) {
   0.040 us [  4583] |                   kernel_supports.part.0();
   0.281 us [  4583] |                 } /* kernel_supports */
   0.551 us [  4583] |               } /* bump_rlimit_memlock */
            [  4583] |               kernel_supports(0, FEAT_PROG_NAME) {
   0.041 us [  4583] |                 kernel_supports.part.0();
   0.201 us [  4583] |               } /* kernel_supports */
  10.961 us [  4583] |               syscall(321) = 5;
  12.353 us [  4583] |             } = 5; /* bpf_map_create */
  14.146 us [  4583] |           } = 0; /* bpf_object__create_map */
            [  4583] |           libbpf_print(LIBBPF_DEBUG, "libbpf: map '%s': created successfully, fd=%d\n") {
   0.190 us [  4583] |             __errno_location();
            [  4583] |             libbpf_print_fn(LIBBPF_DEBUG, "libbpf: map '%s': created successfully, fd=%d\n", 0x7ffdaf1c2130) {
  74.991 us [  4583] |               vfprintf();
  76.174 us [  4583] |             } = 55; /* libbpf_print_fn */
 371.864 us [  4583] |           } /* libbpf_print */
            [  4583] |           bpf_map_update_elem(5, 0x7ffdaf1c224c, 0x7fd56d8cc000, 0) {
   3.126 us [  4583] |             syscall(321) = 0;
   3.967 us [  4583] |           } = 0; /* bpf_map_update_elem */
   0.090 us [  4583] |           kernel_supports.part.0();
            [  4583] |           bpf_object__create_map(0x563f60682390, 0x563f606831b0, 0) {
   0.041 us [  4583] |             kernel_supports.part.0();
   0.100 us [  4583] |             btf__fd(0x563f60682fd0) = 4;
   0.061 us [  4583] |             btf__fd(0x563f60682fd0) = 4;
            [  4583] |             bpf_map_create(BPF_MAP_TYPE_ARRAY, "minimal_.rodata", 4, 28, 1, 0x7ffdaf1c2130) {
            [  4583] |               bump_rlimit_memlock() {
            [  4583] |                 kernel_supports(0, FEAT_MEMCG_ACCOUNT) {
   0.051 us [  4583] |                   kernel_supports.part.0();
   0.321 us [  4583] |                 } /* kernel_supports */
   0.641 us [  4583] |               } /* bump_rlimit_memlock */
            [  4583] |               kernel_supports(0, FEAT_PROG_NAME) {
   0.050 us [  4583] |                 kernel_supports.part.0();
   0.231 us [  4583] |               } /* kernel_supports */
  10.550 us [  4583] |               syscall(321) = 6;
  12.023 us [  4583] |             } = 6; /* bpf_map_create */
  13.315 us [  4583] |           } = 0; /* bpf_object__create_map */
            [  4583] |           libbpf_print(LIBBPF_DEBUG, "libbpf: map '%s': created successfully, fd=%d\n") {
   0.070 us [  4583] |             __errno_location();
            [  4583] |             libbpf_print_fn(LIBBPF_DEBUG, "libbpf: map '%s': created successfully, fd=%d\n", 0x7ffdaf1c2130) {
  63.769 us [  4583] |               vfprintf();
  64.451 us [  4583] |             } = 58; /* libbpf_print_fn */
  65.552 us [  4583] |           } /* libbpf_print */
            [  4583] |           bpf_map_update_elem(6, 0x7ffdaf1c224c, 0x7fd56d852000, 0) {
   1.703 us [  4583] |             syscall(321) = 0;
   2.224 us [  4583] |           } = 0; /* bpf_map_update_elem */
            [  4583] |           bpf_map_freeze(6) {
   1.412 us [  4583] |             syscall(321) = 0;
   1.814 us [  4583] |           } = 0; /* bpf_map_freeze */
 546.762 us [  4583] |         } = 0; /* bpf_object__create_maps */
            [  4583] |         bpf_object__sort_relos(0x563f60682390) {
            [  4583] |           qsort(0x563f60683ba0, 2, 24, &cmp_relocs) {
   0.160 us [  4583] |             cmp_relocs(0x563f60683ba0, 0x563f60683bb8);
   1.102 us [  4583] |           } /* qsort */
   1.433 us [  4583] |         } /* bpf_object__sort_relos */
            [  4583] |         bpf_object__reloc_code(0x563f60682390, 0x563f604d3ab0, 0x563f604d3ab0) {
   0.070 us [  4583] |           kernel_supports.part.0();
            [  4583] |           adjust_prog_btf_ext_info.isra.0() {
   0.350 us [  4583] |             realloc(0, 8) = 0x563f60682590;
   0.140 us [  4583] |             memcpy(0x563f60682590, 0x563f605630fc, 8);
   1.012 us [  4583] |           } /* adjust_prog_btf_ext_info.isra.0 */
            [  4583] |           adjust_prog_btf_ext_info.isra.0() {
   0.100 us [  4583] |             realloc(0, 96) = 0x563f60584a50;
   0.080 us [  4583] |             memcpy(0x563f60584a50, 0x563f60563110, 96);
   0.561 us [  4583] |           } /* adjust_prog_btf_ext_info.isra.0 */
   2.575 us [  4583] |         } /* bpf_object__reloc_code */
            [  4583] |         bpf_object_load_prog(0x563f60682390, 0x563f604d3ab0, 0x563f605849e0, 13, "Dual BSD/GPL", 0x60500, 0x563f604d3b28) {
   0.040 us [  4583] |           kernel_supports.part.0();
   0.100 us [  4583] |           btf__fd(0x563f60682fd0) = 4;
   0.030 us [  4583] |           kernel_supports.part.0();
   0.361 us [  4583] |           libbpf_prepare_prog_load(0x563f604d3ab0, 0x7ffdaf1c1a20, 0) = 0;
            [  4583] |           bpf_prog_load(BPF_PROG_TYPE_TRACEPOINT, "handle_tp", "Dual BSD/GPL", 0x563f605849e0, 13, 0x7ffdaf1c1a20) {
            [  4583] |             bump_rlimit_memlock() {
            [  4583] |               kernel_supports(0, FEAT_MEMCG_ACCOUNT) {
   0.040 us [  4583] |                 kernel_supports.part.0();
   0.261 us [  4583] |               } /* kernel_supports */
   0.521 us [  4583] |             } /* bump_rlimit_memlock */
            [  4583] |             kernel_supports(0, FEAT_PROG_NAME) {
   0.061 us [  4583] |               kernel_supports.part.0();
   0.211 us [  4583] |             } /* kernel_supports */
            [  4583] |             sys_bpf_prog_load(0x7ffdaf1c18f0, 144, 5) {
 123.061 us [  4583] |               syscall(321) = 7;
 123.602 us [  4583] |             } = 7; /* sys_bpf_prog_load */
 125.054 us [  4583] |           } = 7; /* bpf_prog_load */
            [  4583] |           kernel_supports.part.0() {
            [  4583] |             probe_prog_bind_map() {
            [  4583] |               bpf_map_create(BPF_MAP_TYPE_ARRAY, "libbpf_det_bind", 4, 32, 1, 0) {
            [  4583] |                 bump_rlimit_memlock() {
            [  4583] |                   kernel_supports(0, FEAT_MEMCG_ACCOUNT) {
   0.030 us [  4583] |                     kernel_supports.part.0();
   0.300 us [  4583] |                   } /* kernel_supports */
   0.541 us [  4583] |                 } /* bump_rlimit_memlock */
            [  4583] |                 kernel_supports(0, FEAT_PROG_NAME) {
   0.040 us [  4583] |                   kernel_supports.part.0();
   0.190 us [  4583] |                 } /* kernel_supports */
   6.262 us [  4583] |                 syscall(321) = 8;
  16.561 us [  4583] |               } = 8; /* bpf_map_create */
            [  4583] |               bpf_prog_load(BPF_PROG_TYPE_SOCKET_FILTER, "NULL", "GPL", 0x7ffdaf1c18d0, 2, 0) {
            [  4583] |                 bump_rlimit_memlock() {
            [  4583] |                   kernel_supports(0, FEAT_MEMCG_ACCOUNT) {
   0.040 us [  4583] |                     kernel_supports.part.0();
   0.260 us [  4583] |                   } /* kernel_supports */
   0.400 us [  4583] |                 } /* bump_rlimit_memlock */
            [  4583] |                 sys_bpf_prog_load(0x7ffdaf1c17f0, 144, 5) {
  23.915 us [  4583] |                   syscall(321) = 9;
  24.305 us [  4583] |                 } = 9; /* sys_bpf_prog_load */
  25.288 us [  4583] |               } = 9; /* bpf_prog_load */
            [  4583] |               bpf_prog_bind_map(9, 8, 0) {
   1.292 us [  4583] |                 syscall(321) = 0;
   1.874 us [  4583] |               } = 0; /* bpf_prog_bind_map */
   3.066 us [  4583] |               close(8) = 0;
   2.304 us [  4583] |               close(9) = 0;
  50.846 us [  4583] |             } = 1; /* probe_prog_bind_map */
  51.447 us [  4583] |           } /* kernel_supports.part.0 */
            [  4583] |           bpf_prog_bind_map(7, 6, 0) {
   0.641 us [  4583] |             syscall(321) = 0;
   0.932 us [  4583] |           } = 0; /* bpf_prog_bind_map */
   0.180 us [  4583] |           free(0);
 181.931 us [  4583] |         } = 0; /* bpf_object_load_prog */
   0.150 us [  4583] |         free(0x563f60683ba0);
   0.061 us [  4583] |         free(0);
   0.060 us [  4583] |         free(0);
   0.161 us [  4583] |         btf__free(0);
   3.391 ms [  4583] |       } /* bpf_object_load.constprop.0 */
   0.211 us [  4583] |       sysconf();
  95.228 us [  4583] |       mmap64(0x7fd56d8cc000, 4096, PROT_WRITE|PROT_READ, MAP_FIXED|MAP_SHARED, 5, 0) = 0x7fd56d8cc000;
   0.181 us [  4583] |       sysconf();
   4.109 ms [  4583] |     } = 0; /* bpf_object__load_skeleton */
   4.111 ms [  4583] |   } = 0; /* minimal_bpf__load */
            [  4583] |   minimal_bpf__attach(0x563f60681220) {
            [  4583] |     bpf_object__attach_skeleton(0x563f60681260) {
            [  4583] |       attach_tp(0x563f604d3ab0, 0, 0x563f60681248) {
   0.802 us [  4583] |         strdup("tp/syscalls/sys_enter_write") = "tp/syscalls/sys_enter_write";
   0.361 us [  4583] |         strchr("syscalls/sys_enter_write", '/') = "/sys_enter_write";
            [  4583] |         bpf_program__attach_tracepoint_opts(0x563f604d3ab0, "syscalls", "sys_enter_write", 0) {
            [  4583] |           determine_tracepoint_id("syscalls", "sys_enter_write") {
            [  4583] |             use_debugfs() {
  19.196 us [  4583] |               faccessat();
  19.627 us [  4583] |             } = 1; /* use_debugfs */
   0.982 us [  4583] |             __snprintf_chk();
            [  4583] |             parse_uint_from_file("/sys/kernel/debug/tracing/events/syscalls/sys_enter_write/id", "%d\n") {
  15.880 us [  4583] |               fopen64("/sys/kernel/debug/tracing/events/syscalls/sys_enter_write/id", "re") = 0x563f60496130;
  13.275 us [  4583] |               fscanf();
   2.836 us [  4583] |               fclose(0x563f60496130) = 0;
  33.853 us [  4583] |             } /* parse_uint_from_file */
  56.145 us [  4583] |           } = 847; /* determine_tracepoint_id */
   3.862 ms [  4583] |           syscall(298) = 8;
            [  4583] |           bpf_program__attach_perf_event_opts(0x563f604d3ab0, 8, 0x7ffdaf1c2390) {
   0.651 us [  4583] |             bpf_program__fd(0x563f604d3ab0) = 7;
   0.721 us [  4583] |             calloc(1, 56) = 0x563f606825e0;
            [  4583] |             kernel_supports.part.0() {
            [  4583] |               probe_perf_link() {
            [  4583] |                 bpf_prog_load(BPF_PROG_TYPE_TRACEPOINT, "NULL", "GPL", 0x7ffdaf1c2180, 2, 0) {
            [  4583] |                   bump_rlimit_memlock() {
            [  4583] |                     kernel_supports(0, FEAT_MEMCG_ACCOUNT) {
   0.060 us [  4583] |                       kernel_supports.part.0();
   0.621 us [  4583] |                     } /* kernel_supports */
   1.032 us [  4583] |                   } /* bump_rlimit_memlock */
            [  4583] |                   sys_bpf_prog_load(0x7ffdaf1c20a0, 144, 5) {
  41.047 us [  4583] |                     syscall(321) = 9;
  41.558 us [  4583] |                   } = 9; /* sys_bpf_prog_load */
  43.531 us [  4583] |                 } = 9; /* bpf_prog_load */
   0.100 us [  4583] |                 __errno_location();
            [  4583] |                 bpf_link_create(9, -1, BPF_PERF_EVENT, 0) {
   2.013 us [  4583] |                   syscall(321) = -1;
   0.070 us [  4583] |                   __errno_location();
 312.929 us [  4583] |                 } = -9; /* bpf_link_create */
   5.059 us [  4583] |                 close(9) = 0;
 721.500 us [  4583] |               } = 1; /* probe_perf_link */
 722.501 us [  4583] |             } /* kernel_supports.part.0 */
            [  4583] |             bpf_link_create(7, 8, BPF_PERF_EVENT, 0x7ffdaf1c2210) {
   8.205 us [  4583] |               syscall(321) = 9;
   8.717 us [  4583] |             } = 9; /* bpf_link_create */
   2.725 us [  4583] |             ioctl(8, 9216, 0) = 0;
   1.113 ms [  4583] |           } = 0x563f606825e0; /* bpf_program__attach_perf_event_opts */
   0.090 us [  4583] |           libbpf_get_error(0x563f606825e0);
   5.317 ms [  4583] |         } = 0x563f606825e0; /* bpf_program__attach_tracepoint_opts */
   0.331 us [  4583] |         free(0x563f606825b0);
   0.060 us [  4583] |         libbpf_get_error(0x563f606825e0);
   5.322 ms [  4583] |       } = 0; /* attach_tp */
   5.622 ms [  4583] |     } = 0; /* bpf_object__attach_skeleton */
   5.623 ms [  4583] |   } = 0; /* minimal_bpf__attach */
  67.856 us [  4583] |   puts("Successfully started! Please run `sudo cat /sys/kernel/debug/tracing/trace_pipe` to see output ...") = 116;
   3.747 us [  4583] |   fputc('.', &_IO_2_1_stderr_) = 46;
   1.006  s [  4583] |   sleep(1) = 0;
  99.757 us [  4583] |   fputc('.', &_IO_2_1_stderr_) = 46;
   1.010  s [  4583] |   sleep(1) = 0;
 157.399 us [  4583] |   fputc('.', &_IO_2_1_stderr_) = 46;

uftrace stopped tracing with remaining functions
================================================
task: 4583
[0] main

标签:__,bpf,elf,us,btf,sec,跟踪,uftrace,4583
From: https://www.cnblogs.com/pengdonglin137/p/17805865.html

相关文章

  • 羚通视频智能分析平台视频监控算法分析平台视频叠框显示慢且总是一闪一闪的,无法实时跟
    ​羚通视频智能分析平台是一款基于大数据和算法分析的综合性平台,它通过对视频数据的智能分析和处理,为用户提供全方位、多层次的监控服务。该平台集成了多种智能分析算法,可以自动识别和分析视频中的目标对象,如人脸、人体、烟火等。适用于各行各业。最近,有用户反馈,在使用羚通视频......
  • odigos 基于ebpf 以及OpenTelemetry 的分布式tracing 解决方案
    按照odigos官方的介绍是不需要进行代码的修改就可以实现方便的跨应用的分布式trace,目前支持java,python,net,go,js等语言目前看官方的介绍,安装是比较简单的(核心基于了k8s),目前官方文档比较清晰可以试用下说明目前开源分布式trace的工具是越来越多了,同时基于ebpf以及OpenTelemetry......
  • bpf_func_id是如何产生的?
    以libbpf-bootstrap中的一个测试程序minimal.bpf.c为例。下面是minimal.bpf.c的源码:minimal.bpf.c//SPDX-License-Identifier:GPL-2.0ORBSD-3-Clause/*Copyright(c)2020Facebook*/#include<linux/bpf.h>#include<bpf/bpf_helpers.h>charLICENSE[]SEC("l......
  • 基于开源模型搭建实时人脸识别系统(五):人脸跟踪
    继续填坑,之前已经讲了人脸检测,人脸检测是定位出画面中人脸的位置,理论上把检测到的人脸进行提特征就能做人脸识别了,不过直接这样做是有缺陷,一是存在很大的资源浪费,毕竟同一个人出现在画面,我们实际上应该只需要做一次识别就知道他的身份(理想情况下),而不需要每一帧都去做;二是如果对每......
  • android ebpf之uprobe原理和检测方法
    uprobe通过内核层对用户层进程的指定地址的原指令copy到其他位置,然后写入指定类型中断指令,然后内核中设置对应的中断处理程序,中断处理程序中执行uprobe设置的回调过滤函数,然后设置单步执行copy的原指令后恢复寄存器状态继续执行。ida查看被uprobehook的函数头部,指令被修改为了中断......
  • 基于eBPF是云原生可观测实践
    eBPF技术是Linux内核3.15版本中引入的全新设计,自从2014年发布以来,一直都备受瞩目。在过去几年中,基于eBPF技术的实践和工程落地层出不穷,出现了爆发式的增长。2015年微软、Google、Facebook、Netflix和Isovalent也共同宣布在Linux基金会下成立了一个新的eBPF基金会,以帮助支持......
  • 《安富莱嵌入式周报》第320期:键盘敲击声解码, 军工级boot设计,开源CNC运动控制器,C语言
     视频版:https://www.bilibili.com/video/BV1Cr4y1d7Mp/1、键盘敲击声解码https://arxiv.org/abs/2308.01074键盘敲击声被解码的话,我们使用键盘输入密码将被方便的解码出来。这篇文章介绍了一种使用最先进的深度学习模型,以便使用手机麦克风对笔记本电脑敲击键盘分析。实际测试训练......
  • android ebpf中的CO-RE学习
    CO-RE原理因为不同的内核版本的系统内部结构体会有差异,例如structuser_arg_ptr,当内核编译配置中存在CONFIG_COMPAT=y的时候,会在native成员之前增加一个布尔变量is_compat,这样native的偏移就发生的变化。如果编写的ebpf内核程序需要访问structuser_arg_ptr类型的变量就需要考......
  • 循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(6) -- 窗口控
    在我们窗口新增、编辑状态下的时候,我们往往会根据是否修改过的痕迹-也就是脏数据状态进行跟踪,如果用户发生了数据修改,我们在用户退出窗口的时候,提供用户是否丢弃修改还是继续编辑,这样在一些重要录入时的时候,可以避免用户不小心关掉窗口,导致窗口的数据要重新录入的尴尬场景。本篇随......
  • 可观察性支柱:探索日志、指标和跟踪
    通过检查系统输出来测量系统内部状态的能力称为可观察性。当可以仅使用输出信息(即传感器数据)来估计当前状态时,系统就变得“可观察”。您可以使用来自Observability的数据来识别和解决问题、优化性能并提高安全性。在接下来的几节中,我们将仔细研究可观察性的三大支柱:指标、日志和......