gdb调试doris_be
工欲善其事,必先利其器
环境准备
使gdb调试时,能正确访问源码的方法
- 若测试环境与编译环境在同一个节点,在使用docker时映射源码路径与真实源码路径完全一致即可
例如:
1 | -v /data1/workspace/gaoyuanfeng/gyf-doris/doris:/data1/workspace/gaoyuanfeng/gyf-doris/doris |
- 若测试环境与编译环境不在同一个节点,那么只需要在测环境下放置一份代码,代码所在路径要与编译环境的路径一致
检查测试环境gdb版本
要求gdb版本不低于10.2
1 | gdb --version |
若无网环境,可手动安装gdb 14.1,以下是手动安装gdb到用户目录下的示例:
- 先下载并上传以下安装包到服务器用户根目录下
- 执行以下操作
1 | cd |
可根据需求自行修改安装目录
编译debug版doris_be
1 | BUILD_TYPE=Debug sh build.sh |
gdb调试
- fe.conf添加配置
目的:避免因为gdb调试中因超过心跳时间限制导致超时,进而SQL执行报错而终止
1 | bdbje_heartbeat_timeout_second = 600 |
-
启动doris
-
调试
1 | gdb -p {be_pid} |
be pid 可使用如下两种方式获取
1 | cat be/bin/be.pid |
1 | lsof -i | grep -m 1 doris_be | awk "{print $2}" |
使用vscode调试
- 安装 C/C++ 插件,也可下载离线包进行安装cpptools

- 配置launch.json, 也可在工作目录下手动创建 .vscode/launch.json
1 | { |
根据实际情况修改gdb等路径
- 演示

