# redis源码本地调试.md
通过断点调试redis代码,能够让我们深入了解redis的内部执行流程。
# 下载redis代码、构建、测试
git clone git@github.com:redis/redis.git
cd redis
make
1
2
3
2
3
make构建好后,就可以启动redis-server并用redis-cli链接调用了。
启动redis-server
./src/redis-server
1
启动redis-cli
./src/redis-cli
1
然后就可以通过命令行调用测试redis。
# 用IDE打开代码、debug调试
我们使用Jetbrains提供的Clion (opens new window),点击菜单栏的File -> Open,选择redis项目的目录打开。
打开项目后,点击Add Configuration, 添加一个Makefile Application
Configuration配置里name随便填写,比如make redis。然后点击Target后边的按钮添加Custom Build Target
点击Add target,名字填make redis,点击Build右边的三个点的按钮。
添加一个make redis的External Tools, Program填make, working directory选择redis的项目目录
然后依次点击Apply,OK保存。 Configuration中配置按Target后,Executable选择src/redis-server,点击Apply, OK保存。
菜单栏会出现我们添加的make redis,点击debug按钮
就可以成功构建并启动redis server了,不过要注意要提前停止之前在命令行启动的redis-server避免端口冲突。
在代码dict.c文件中dictFind方法左侧加上一个断点,用redis-cli发送一个get hello的命令,就可以看到redis停在这个断点上。 有了debug功能,我们就可以单步调试、查看变量、查看调用栈,了解redis细节不再是难事。