首页 > 其他 > 详细

调试Redis

时间:2021-01-03 19:04:25      阅读:22      评论:0      收藏:0      [点我收藏+]

几种常见的调试方法

  • 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-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      # 跳出当前方法

参考链接

调试Redis

原文:https://www.cnblogs.com/bpzj/p/14225701.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!