Windows
Linux/Unix
MacOS
在 Windows上安装linux虚拟机, linux 虚拟机中使用 gdb-server, windows中使用Clion或VSCode进行调试。
安装linux虚拟机
安装 gcc gdb gdb-server
下载源码
在虚拟机中编译 redis
make CFLAGS="-g -O0" # 不使用gcc优化, 方便调试
启动 gdb-server
gdbserver :8088 redis-server
主机端使用Clion调试
此方法需要安装 Visual Studio的C/C++ 支持,和 Windows SDK,占用空间较大, 如果已经安装了VS, 则推荐。
执行 src/mkreleasehdr.sh 生成 release.h 文件(可使用 git-bash 或 Cygwin)
# 进入 redis 源代码根目录, 使用 make CFLAGS="-g -O0" , 在编译redis的源码时, 不进行编译优化, 添加调试信息
# O0 -->> O1 -->> O2 -->> O3 -O0表示没有优化,-O1为缺省值,-O3优化级别最高
make CFLAGS="-g -O0"
cd ./src
gdb redis-server # 即可进入 gdb 调试模式
输出
gdb 常用命令
(gdb) # 回车, 重复上次
(gdb) l # list 列出源码
(gdb) layout src # 进入多窗口模式
(gdb) b main # break main , 断点在 main方法
(gdb) break 16 # 断点在16行
(gdb) bt # 查看堆栈
(gdb) info #
(gdb) p <arg> # print 查看变量值
(gdb) r # run
(gdb) n # next 运行到下一行
(gdb) c # continue 继续运行
(gdb) step # 进入方法里面
(gdb) finish # 跳出当前方法
原文:https://www.cnblogs.com/bpzj/p/14225701.html