使用gdb来调试ceph

在debug模式下重新编译ceph,再利用gdb来调试ceph的rbd

Posted by YMG on April 15, 2018

首先重新编译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
结果如下图所示: