Skip to content

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 调试安全提示、系统要求基线,见 通用说明

更多细节请阅读 官方文档

Percona Toolkit 中文文档 · 社区维护的第三方学习站