# redis源码本地调试.md

通过断点调试redis代码,能够让我们深入了解redis的内部执行流程。

# 下载redis代码、构建、测试

git clone git@github.com:redis/redis.git
cd redis
make
1
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

picture 1

Configuration配置里name随便填写,比如make redis。然后点击Target后边的按钮添加Custom Build Target

picture 2

点击Add target,名字填make redis,点击Build右边的三个点的按钮。

picture 3

添加一个make redis的External Tools, Program填make, working directory选择redis的项目目录

picture 4

然后依次点击Apply,OK保存。 Configuration中配置按Target后,Executable选择src/redis-server,点击Apply, OK保存。

picture 7

菜单栏会出现我们添加的make redis,点击debug按钮

picture 6

就可以成功构建并启动redis server了,不过要注意要提前停止之前在命令行启动的redis-server避免端口冲突。

picture 8

在代码dict.c文件中dictFind方法左侧加上一个断点,用redis-cli发送一个get hello的命令,就可以看到redis停在这个断点上。 有了debug功能,我们就可以单步调试、查看变量、查看调用栈,了解redis细节不再是难事。

picture 9