linux - 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--,这意味着它确实是不可执行的。我应该如何使它可执行?
解决方案
我通过 chmod +x libasan.so.4.0.0 修复了它
推荐阅读
- rust - async_std 1.8 对 `async_std::channel` 中的项目有未解决的导入
- php - 在 PHP 中模 64 位整数时的惊人限制
- r - 根据 r 中的另一个索引值按组重新排序行
- docker - Docker如何将图像推送到带有证书签名的工件
- r - 变异功能:对字符串进行排序并去除重复字符
- python - SODA API 未返回数据集中的所有字段
- flutter - Dart 跨页面持久化数据
- layout - 如何配置 Cytoscape 无头布局?
- objective-c - Objecitve C/Swift Pinch 放大区域
- c# - 当我有两个消费者线程运行时,为什么只有一个 RabbitMQ 消费者接收所有消息?