pt-eustack-resolver
使用 eu-stack 获取指定程序的堆栈跟踪并解析符号,是 pt-pmp 的配套工具。
语法
bash
pt-eustack-resolver PID用法示例
以下命令需要 elfutils 的 eu-stack 在 PATH 中,且对目标进程有相应权限(通常需要 root 或同用户)。直接给 PID 即可解析其所有线程的堆栈符号。
场景:解析指定 PID 的堆栈
拿到某个进程的进程号,直接解析其所有线程的堆栈符号:
bash
pt-eustack-resolver 12345场景:直接解析 mysqld 进程
用 pidof 取 mysqld 的 PID 后直接喂给本工具,一步到位:
bash
pt-eustack-resolver $(pidof mysqld)场景:查看帮助与版本
确认用法或当前版本,用于排障时附带信息:
bash
pt-eustack-resolver --help
pt-eustack-resolver --version功能说明
pt-eustack-resolver 使用 eu-stack 为指定 PID 的进程收集堆栈跟踪并解析符号。 当 pt-pmp 指定 --dumper=pteu 选项时会调用本工具。
eu-stack 是 elfutils 包中的工具,会为进程或 core 文件中的每个线程打印堆栈。 它比 gdb 更快,对被诊断进程的开销更小。
输出
每个线程的堆栈,格式与 gdb thread apply all bt 的输出类似。
选项
| 选项 | 说明 |
|---|---|
--help | 显示帮助并退出 |
--version | 显示版本并退出 |
其他信息
系统要求:需要 elfutils 包中的
eu-stack。作者:Alexey Stroganov
环境变量:本工具不使用环境变量(所有 Percona Toolkit 工具均支持
PTDEBUG=1调试,注意调试输出会暴露命令行中的密码)通用说明:已知问题的反馈方式、PTDEBUG 调试安全提示、系统要求基线,见 通用说明。
更多细节请阅读 官方文档。