Redis是一款C语言编写Key-Value存储系统,基于BSD协议开放源码,其源码托管在github上,大概有三万行。

源码地址:https://github.com/antirez/redis

源码依赖于linux平台,采用GNU MAKE工具进行项目管理,而且官方没有提供Redis的Windows版本。作为源码的学习者,我们更希望使用集成开发工具来管理项目,这样代码的层次结构显得比较清晰,而且在必要的时候可以打上断点,逐步跟踪以查看代码执行流程。

幸运的是有一个名为MS Open Tech的组织专门负责將其他平台上较为优秀的开源项目移植到Windows平台,对于Redis他们也提出了一套將源码移植到Visual Studio来管理的方案。

MS Open Tech官网redis项目:https://msopentech.com/opentech-projects/redis/

生成VS项目文件方案:https://gist.github.com/MS-Interop/1439660

笔者也根据上面的方法做了一遍,很不幸,没有成功,不过也不用担心MS Open Tech將有Visual Studio工程文件的源码也放到了github上。

MS Open Tech的redis项目源码地址:https://github.com/MSOpenTech/redis

注意:branch2.8分支使用Visual Studio的版本为2013版,笔者用VS2012打开编译有很多错误。VS2012和VS2010请选择branch2.6然后点击Download Zip按钮进行下载。

msvs目录下为VS的工程文件,双击点击RedisServer.sln用VS打开。

先在hiredis和lua项目上点击右键->生成,以产生其他项目依赖的lib文件。然后在RedisSever项目上点击右键->调试->启动新实例,同时在源码上打上断点就可以调试了。

怎么样,比网上其他方法简单多了吧!

使用Visual Studio2012调试Redis源码的更多相关文章

  1. Redis源码漂流记(二)-搭建Redis调试环境

    Redis源码漂流记(二)-搭建Redis调试环境 一.目标 搭建Redis调试环境 简要理解Redis命令运转流程 二.前提 1.有一些c知识简单基础(变量命名.常用数据类型.指针等) 可以参考这篇 ...

  2. redis源码学习之工作流程初探

    目录 背景 环境准备 下载redis源码 下载Visual Studio Visual Studio打开redis源码 启动过程分析 调用关系图 事件循环分析 工作模型 代码分析 动画演示 网络模块 ...

  3. redis源码学习之slowlog

    目录 背景 环境说明 redis执行命令流程 记录slowlog源码分析 制造一条slowlog slowlog分析 1.slowlog如何开启 2.slowlog数量限制 3.slowlog中的耗时 ...

  4. redis源码笔记(一) —— 从redis的启动到command的分发

    本作品采用知识共享署名 4.0 国际许可协议进行许可.转载联系作者并保留声明头部与原文链接https://luzeshu.com/blog/redis1 本博客同步在http://www.cnblog ...

  5. Redis源码剖析--源码结构解析

    请持续关注我的个人博客:https://zcheng.ren 找工作那会儿,看了黄建宏老师的<Redis设计与实现>,对redis的部分实现有了一个简明的认识.在面试过程中,redis确实 ...

  6. 查看和调试Qt源码

    简述 在调试程序的时候,有时需要调试进入 Qt 源码,这不仅有利于我们了解内部实现机制,而且对于解决一些隐蔽性问题很有帮助. 都知道 F11 是“单步进入”,可是在调试的过程中,按下 F11 却无法进 ...

  7. 玩一把redis源码(一):为redis添加自己的列表类型

    2019年第一篇文档,为2019年做个良好的开端,本文档通过step by step的方式向读者展示如何为redis添加一个数据类型,阅读本文档后读者对redis源码的执行逻辑会有比较清晰的认识,并且 ...

  8. redis源码(一):为redis添加自己的列表类型

    本文档分为三大部分: 环境介绍与效果演示 redis接收命令到返回数据的执行逻辑 代码实现 文档的重点和难点在第三部分,完全阅读本文档需要读者具备基本的c语言和数据结构知识. 环境介绍和效果演示环境介 ...

  9. 比特币学习笔记(二)---在windows下调试比特币源码

    根据我一贯的学习经验,学习开源代码的话,单单看是不够的,必须一边看一边调试才能尽快理解,所以我们要想法搭建windows下bitcoin源码的调试环境. 紧接着昨天的进度,想要调试linux下的比特币 ...

随机推荐

  1. Android应用内加载pdf的方法?

    [可行] 最直接的方式下载到本地, 然后调用相关应用打开 [可行,有局限] 使用 webview 加载, 需要在 原url 前面加上 http://docs.google.com/gview?url= ...

  2. 22.boost图模板

    //#pragma warning(disable : 4819) #include <boost/config.hpp> #include <iostream> // for ...

  3. HTTP学习记录

    title: HTTP学习记录 toc: true date: 2018-09-21 20:40:48 HTTP协议,HyperText Transfer Protocol,超文本传输协议,是因特网上 ...

  4. Kettle学习系列之Kettle的起源

    不多说,直接上干货! Kettle起源于十年以前,本世纪初.当时啊,ETL工具千姿百态,比较流行的工具有50个左右,ETL框架数量比工具还要多些. 根据这些工具的各自起源和功能可以分为以下4种类型,如 ...

  5. python 3.x 学习笔记10 (析构函数and继承)

    1.类变量的用途:大家公用的属性,节省开销(内存) 2.析构函数 在实例释放和销毁的时候执行的,通常用于做一些收尾工作,如关闭一些数据库链接和打开的临时文件 3.私有方法两个下划线开头,声明该方法为私 ...

  6. c#.net 获取时间日期年月日时分秒生成自动文件名格式

    下面是日期和时间的各种方法,转换为字符串. 如果把输出的格式改下就可以做类似的文件名了,例如:2016010110101224356.doc  c#用DateTime.Now.ToString(&qu ...

  7. shell-3.bash的基本功能: history tab alias 快捷键

  8. B. Recursive Queries 打表

    Code: #include<cstdio> #include<iostream> #include<algorithm> #include<cstring& ...

  9. TP框架传值

    /*TP框架传值*/ location.href = "../add/add/department/"+department+"/username/"+user ...

  10. 关于VS2013 Browser Link 新功能

    今天小明在编写MVC项目,设计前端项目的时候,突然遇到一个问题,就是无论什么页面,当每次执行调试的时候,页面中都会自动的加上这样一行代码: <!-- Visual Studio Browser ...