本节课将介绍 Redis 项目在 Linux 系统中使用 gdb 去调试,这里的调试环境是 CentOS 7.0,但是通常情况下对于 C/C++ 项目我一般习惯使用 Visual Studio 去做项目管理,Visual Studio 提供了强大的 C/C++ 项目开发和管理能力。这里介绍一下如何将这种开源项目整体添加到 Visual Studio 的解决方案中去。

(1)启动 Visual Studio 新建一个空的 Win32 控制台程序(工程建好后,关闭该工程防止接下来的步骤中文件占用导致的无法移动)。

(2)这样会在 redis 源码目录下会根据设置的名称生成一个文件夹(这里是 redis-4.0.1),将该文件夹中所有文件复制到 redis 源码根目录,然后删掉生成的这个文件夹。

(3)再次用 Visual Studio 打开 redis-4.0.1.sln 文件,然后在解决方案资源管理器视图中点击显示所有文件按钮并保持该按钮选中(如果找不到解决方案资源管理器视图,可以在“视图”菜单中打开,快捷键为 Ctrl + Alt + L)。

(4)然后选中所有需要添加到解决方案中的文件,右键选择菜单“包括在项目中”即可,如果文件比较多,Visual Studio 可能需要一会儿才能完成,为了减少等待时间,读者也可以一批一批的添加。

(5)接着选择“文件”菜单“全部保存”菜单项保存即可(快捷键 Ctrl + Shift + S)。

最终效果如下图所示:

这样我们就能利用 Visual Studio 强大的功能管理和阅读源码了。

这里要提醒一下读者:C/C++ 开源项目中一般会使用各种宏去条件编译一些代码,实际生成的二进制文件中不一定包含这些代码,因此在 Visual Studio 中看到某段代码的行号与实际在 gdb 中调试的代码行号不一定相同,在给某一行代码设置断点时请以 gdb 中 list 命令看到的代码行号为准

最新文章

  1. 文件操作 模式r+与w+
  2. 正则表达式(转自https://segmentfault.com/a/1190000000699097)
  3. 对比DOM和jQuery完善度
  4. JavaBean与Jsp
  5. python 最长公共子序列
  6. [ios]ios的延迟执行方法
  7. hdu 1423
  8. 模拟键盘输入 : SendMessage, keybd_event, PostKeybdMessage
  9. ios-点击屏幕,隐藏键盘
  10. TCP TIME WAIT
  11. mybatis xml < >
  12. JupyterLab绘制:柱状图,饼状图,直方图,散点图,折线图
  13. 哈希函数(hash函数)
  14. 在Node.js中在保持目录结构的情况下压缩指定目录
  15. R语言|数据特征分析
  16. [Aaronyang] 写给自己的WPF4.5 笔记16[多线程]
  17. sparkR介绍及安装
  18. 你还有没有印象?腾讯QQ16个版本界面你认识多少?
  19. 如何查看你的VPS是什么虚拟化架构?
  20. RESTful Java client with Apache HttpClient / URL /Jersey client

热门文章

  1. fastbin attack学习小结
  2. Typora加七牛云实现实时图片自动上传
  3. 『Java』接口的使用方法
  4. Tomcat服务器种的HttpServletRequest类
  5. VScode安装配置
  6. 跟我一起写 Makefile(五)
  7. VueApp 自动更新解决plus is not defined问题
  8. 如何删除windows10右键新建中不需要的选项
  9. Python语言系列-06-面向对象1
  10. SpringBoot开发三