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 |
看到服务器已经在监听了

设置断点

调试
点击调试

看到断点已经在执行了

执行单步调试

可以看到执行成功
