注意

本文档适用于 Ceph 开发版本。

GDB - GNU项目调试器

GNU项目调试器(GDB)是一个强大的工具,允许您分析进程的执行流程。

开始使用GDB

基本用法和示例可以在这里找到。GDB可以附加到一个正在运行的进程。例如,在部署开发集群后,守护进程的进程号(PID)可以在以下地方找到: GDB can be attached to a running process. For instance, after deploying a development cluster, the process number (PID) of a ceph-osd守护进程的进程号(PID)可以在:

$ cd build
$ cat out/osd.0.pid

附加gdb到进程:

$ gdb ./bin/ceph-osd -p <pid>

Note

建议不进行任何优化(gcc标志),以避免消除中间值。-O0 gcc flag) in order to avoid elimination of intermediate values.

调试时设置断点可能会导致超时,因此建议以下配置选项:

[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 基金会资助和托管Ceph Foundation. 如果您想支持这一点和我们的其他工作,请考虑加入现在加入.