注意
本文档适用于 Ceph 的开发版本。
GDB - GNU 项目调试器
GNU 项目调试器 (GDB) 是一个强大的工具,允许您分析进程的执行流程。GDB 可以帮助查找错误、发现崩溃错误或在开发集群执行期间跟踪源代码。它也可以用于调试 Teuthology 测试运行。
GDB 入门
带有示例的基本用法可以在这里找到。GDB 可以附加到正在运行的进程。例如,部署开发集群后,可以在以下位置找到 ceph-osd 守护程序的进程号 (PID):
$ cd build
$ cat out/osd.0.pid
将 gdb 附加到进程
$ gdb ./bin/ceph-osd -p <pid>
注意
建议在编译时不进行任何优化(-O0 gcc 标志),以避免消除中间值。
在调试时停止断点可能会导致超时,因此建议使用以下配置选项
[osd]
osd_op_thread_timeout = 1500
osd_op_thread_suicide_timeout = 1500
调试 Teuthology 测试
src/script/ceph-debug-docker.sh 可用于分析 Teuthology 故障
$ ./ceph-debug-docker.sh <branch-name>
有关更多信息,请参阅脚本头。