注意

本文档适用于 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>

有关更多信息,请参阅脚本头。

由 Ceph 基金会为您呈现

Ceph 文档是由非营利性 Ceph 基金会 资助和托管的社区资源。如果您希望支持这项工作和我们的其他努力,请考虑 立即加入