栈追踪工具 stackplz
使用教程
stackplz基于eBPF的堆栈追踪工具项目地址:https://gitcode.com/gh_mirrors/st/stackplz
1. 项目目录结构及介绍
.
├── assets # 含有资源文件
├── cli # 命令行接口代码
├── docs # 文档目录
├── images # 图像资源
├── preload_libs # 预加载库
├── src # 主要源代码
├── tests # 测试用例
└── user # 用户相关脚本或配置
├── gitignore # Git 忽略文件列表
├── LICENSE # 许可证文件
├── Makefile # Makefile 构建文件
└── README.md # 项目阅读指南
stackplz
的主要工作目录是 src
,其中包含了实现 eBPF 堆栈追踪的核心代码。cli
文件夹包含命令行界面的实现,而 tests
提供了测试示例。user
文件夹包含了用户可能需要的一些基本脚本和配置文件。
2. 项目启动文件介绍
项目的主入口点通常是通过运行编译生成的二进制文件来启动。在构建完成后,可以在项目根目录找到名为 stackplz
的可执行文件。使用这个文件时,通常在终端中输入以下命令:
./stackplz [options]
[options]
是一串命令行参数,用于指定跟踪行为和输出设置。例如,要追踪特定系统调用或用户态函数,你可以使用 -n
(应用包名),-l
(库文件名) 和 -w
(函数地址或系统调用名称) 参数。
3. 项目配置文件介绍
stackplz
支持通过配置文件定制其行为。配置文件位于 user
目录下的 config.json
或自定义位置,并通过 --config
选项指定。配置文件的结构大致如下:
{
"pid_whitelist": [123, 456], // 进程ID白名单
"tid_whitelist": ["thread1", "thread2"], // 线程ID白名单
"blacklist": ["com.example.app"], // 包名黑名单
"functions": { // 函数追踪配置
"libfoo.so": {
"hook": ["func1", "func2"]
}
},
"syscalls": ["open", "close"] // 跟踪的系统调用
}
这些配置项允许你预先定义要追踪哪些进程、线程以及函数或系统调用。通过使用配置文件,可以更方便地复用和管理复杂的追踪配置。
注意: 在实际使用 stackplz
时,务必确保设备已获得 root 权限,并且系统内核版本至少为 5.6。此外,某些高级特性如硬件断点需要更高版本的内核支持。
要了解更多关于 stackplz
的具体用法和选项,请参考项目文档和官方说明。如有疑问,也可以查阅项目仓库中的示例和测试用例。
stackplz基于eBPF的堆栈追踪工具项目地址:https://gitcode.com/gh_mirrors/st/stackplz