redis源码断点调试

redis断点调试的方式有两种

记录日志
printf

记录日志

redisLog(REDIS_WARNING, "hello world!")

操作流程
在t_string.c的getCommand方法中添加如下内容

redisLog(REDIS_WARNING, "hello world!"); return ;

启动redis

make && src/redis-server

连接redis

src/redis-cli

查看结果(注意是在redis-server查看结果)

get name

解释
由于getCommand是定义的get命令的操作,因此get name命令能够触发redisLog记录日志

printf

在t_string.c的getCommand方法中添加如下内容

printf("hello world!")

启动redis,连接redis,查看结果和上述流程一直

注意

每次操作完成之后都要进行编译,并重新启动服务端和连接redis
执行命令的时候最好加上路径,万一环境变量中有全局的redis-cli呢
redisLog在有些文件中不能使用,例如sds.c(也许是我水平有限,反正我是跳过了)
printf打sizeof类型,使用lu参数。printf(“默认长度:%lu”, sizeof(struct sdshdr));
坚持原创技术分享,您的支持将鼓励我继续创作!