调试Redis

几种常见的调试方法

  • Windows

  • Linux/Unix

    • gdb 命令行调试
    • GUI 调试 (VS Code或CLion)
  • MacOS

    • lldb (VS Code)

推荐的方法:

  • Linux系统 + Clion/VSCode 调试
  • Win系统 + Linux 虚拟机编译 + gdb-server 远程调试
  • Win系统 + MSVC 编译 + Visual Studio 调试
  • Mac系统 + lldb 调试

linux系统下 clion 调试

下载源码后打开,clion支持自动识别makeFile配置,先执行 make 编译,然后如下图,配置redis-server路径,即可调试。

linux-vm-with-gdb-server-on-windows-host

在 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调试

    • 配置一个gdb remote debug
    • 启动调试

msvc + msvc debug (Visual Studio)

此方法需要安装 Visual Studio的C/C++ 支持,和 Windows SDK,占用空间较大, 如果已经安装了VS, 则推荐。

  • 下载源码
    感谢github上的tporadowski/redis项目
  • 安装 Visual Studio, 安装 C/C++ 支持
  • 生成 release.h 文件
    执行 src/mkreleasehdr.sh 生成 release.h 文件(可使用 git-bash 或 Cygwin)
    
  • 调试

Linux gdb 命令行调试

  • 下载 redis 源码
  • 安装 gcc gdb
  • make CFLAGS="-g -O0"
# 进入 redis 源代码根目录, 使用 make CFLAGS="-g -O0" , 在编译redis的源码时, 不进行编译优化, 添加调试信息
#  O0 -->> O1 -->> O2 -->> O3             -O0表示没有优化,-O1为缺省值,-O3优化级别最高
make CFLAGS="-g -O0"
  • 使用gdb 调试
    编译完成后, 使用gdb命令行进行调试
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      # 跳出当前方法

参考链接

posted @   bpzj  阅读(227)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示