首页 > 解决方案 > bpftrace:uprobe 目标文件不存在或不可执行

问题描述

我想使用 bpftrace 来跟踪 libasan 库中的函数,该库位于 /usr/lib/x86_64-linux-gnu/ 中。

然而

sudo bpftrace -e 'uretprobe:/usr/lib/x86_64-linux-gnu/libasan.so.4: __interceptor_malloc { printf("pid: %d, malloc %p\n", pid, retval); }'

给出错误:uprobe target file '/usr/lib/x86_64-linux-gnu/libasan.so.4' does not exist or is not executable

我试过了:export LD_LIBRARY_PATH="/lib:/usr/lib:/usr/local/lib"但它没有帮助。

如何使库可执行 bpftrace?我需要它来跟踪在 Firefox 进程中完成的分配。谢谢!

编辑:我刚刚发现对 libasan 的权限是 -rw-r--r--,这意味着它确实是不可执行的。我应该如何使它可执行?

标签: linuxaddress-sanitizerbpfdynamic-analysisbcc-bpf

解决方案


我通过 chmod +x libasan.so.4.0.0 修复了它


推荐阅读