centos7系统使用clion工具或者GDB或者vscode code远程debug调试redis7源码-图文详细
拉取代码
1 | git clone https://gitee.com/panguchuangshi/redis.git |
切换到7.2.0分支
1 | git checkout 7.2.0 |
查看gcc
1 | gcc -v |
进入到redis目录下
1 | cd redis |
执行编译命令
1 | make CFLAGS="-g -O0" MALLOC=jemalloc |
make
命令可以指定参数-O0
参数表示告诉编译器不要优化代码,防止在 Debug 的时候, IDE Redis 源码 与 实际运行的 对应不上。MALLOC=jemalloc
,Mac OS 系统Redis默认内存分配器是libc,通过 MALLOC=jemalloc
指定使用 jemalloc 内存分配器
可以看到执行成功
进入src目录下
1 | cd src |
可以看到编译成功
Clion工具调试
clion工具很好用,就是需要付费。
安装clion
下载地址如下
https://www.jetbrains.com/clion/download/#section=windows
安装好后执行后面操作
配置调试环境
选择redis-server
点击编辑
配置执行器和配置文件
server.c打断点,然后点击调试
可以看到断点了
运行完后,看到启动成功
GDB调试
在没有任何别的工具情况下,它就是最强大的。
进入到src目录下
1 | cd /home/hou/redis/src |
执行gdb调试命令
1 | gdb redis-server |
设置断点
1 | b main |
运行
1 | r |
单步执行
1 | n |
退出
1 | quit |
vscode gdb远程调试
借助开源免费工具调试,一个字爽,不在受license的干扰。
安装code
https://code.visualstudio.com/updates/v1_85
安装好后启动
输入code就可以启动
1 | code |
打开源码目录
安装插件
添加配置
添加配置文件
选择连接远程gdbserver
修改执行路径
拷贝路径
进行替换
配置launch.json如下
1 | { |
安装gdbserver
1 | sudo yum install gdb-gdbserver |
进入redis src目录
1 | cd /home/hou/redis/src |
执行远程调试服务命令
1 | gdbserver :2345 redis-server /home/hou/redis/redis.conf |
看到服务器已经在监听了
设置断点
调试
点击调试
看到断点已经在执行了