说明:之前一直用gdb和lttng 调试ceph源码,后来又发现了systemtap,下面对比下这三种工具。
一,3种源码分析工具的比较
1,gdb
优点:擅长做精细化的调试。比如查看变量内容,查看内存内容,下条件断点等。
缺点:不适合跟很长的流程,频繁打断点,回溯函数堆栈很累。
2,lttng
优点:ceph自带,兼容性好。适当的时候可以打印关键变量内容。
缺点:需要修改源码,写入tracepoint,然后重新编译源码。过程比较繁琐。
3,systemtap
优点:擅长分析代码流程,打印函数调用关系,不需要修改源码,据说还能分析性能瓶颈。
缺点:需要写点调试脚本。
1,2 两种工具已经介绍过,安装编译过程,在ceph源码群里有。下面重点介绍systemtap
二, 安装systemtap环境
1,部署ceph环境
这个就不多说了。
2,安装systemtap工具
安装下面2个包
system