首先重新编译ceph,在debug模式下,使用gdb来调试rbd的运行过程
编译安装ceph
参照ceph的github官方教程
$git clone git://github.com/ceph/ceph
$git submodule update –init –recursive
checkout到v12.2.2
$git checkout v12.2.2
开始安装依赖包
$cd ceph
$./install-deps.sh
设置在debug模式下进行编译
$./do_cmake.sh -DCMAKE_EXPORT_COMPILE_COMMANDS=ON CMAKE_BUILD_TYPE=”Debug” CMAKE_CXX_FLAGS_DEBUG=”-g2 -ggdb” -DBUILD_SHARED_LIBS=OFF可参照
或者$vim CMakeLists.txt
添加两行
SET(CMAKE_BUILD_TYPE “DEBUG”)
SET(CMAKE_C_FLAGS “-O0 -Wall -g”)如下:

$cd build
$make -j8 && make install
gdb调试
具体gdb调试入门详见
先读取rbd程序 $gdb rbd
记载rbd的程序入口处,设置断点 $b main
运行程序 $r
一行一行的执行 $r
结果如下图所示:
