Windows下调试比特币源码

自从比特币源码研读班开办以来,你们大部分时间是在纯看代码,沿着代码中各函数的调用顺序逐行阅读,逐行理解,有时理解不了的你们会在群里讨论、或在代码中添加日志打印、或Linux编程经验丰富者会经过gdb调试方式来实现对相应代码的理解。但对于大多数习惯使用Windows系统的用户来讲,可视化方式调试和理解代码更为有意义,如咱们在Windows中可使用Visual Studio来调试代码。所以,带着这个诉求,我也在想办法找到这个方便的调试方法。在一次与研习社搞区块链开发的社友交流后,得知Visual Studio+Visual GDB,因而我第一时间进行了亲测,通过一番试验,终于搞定了在Windows下远程调试Ubuntu下的QYB源码(基于比特币改造的研习社第一代代币),其调试方法与比特币是同样的。调试效果如图所示:程序员

                                                            VisualStudio+Visual GDB调试比特币程序,编程

从图中咱们能够看到,经过VS+Visual GDB能够调试VS程序同样对Linux下的代码进行调试,便可以设置断点、查看变量值、单步调试等,因此仍是很方便的。下面我将详细说明如何搭建调试环境。函数

1、编译环境准备学习

首先须要在Windows机器中安装VS和Visual GDB,VS的版本需2010之上,本文使用的是2010版,VS的安装对于大部分程序员来讲都不陌生,这里就不详细说明,不熟悉者可自行百度相关资料安装。而后就是Visual GDB的安装了,其前提是你们已经完成了VS的安装。下面是VisualGDB5.3的下载连接:区块链

连接:https://pan.baidu.com/s/1dvc8dovVioc2HWbZuqkTzA 密码:3etx。ui

下载完成后包含以下两个文件:.net

下载完以后点击安装VisualGDB-5.3-preview6.msi,安装完以后记得点击PatchVisualGDB.exe。3d

在完成了Visual GDB的安装以后,在Visual Studio 2010的“项目”选项中会增长“Visual GDB”模板,该模板的工程中会能够看到“Linux Project Wizard”工程。此时代表Visual GDB已安装成功。调试

下载完以后点击安装VisualGDB-5.3-preview6.msi,安装完以后记得点击PatchVisualGDB.exe。rest

在完成了Visual GDB的安装以后,在Visual Studio 2010的“项目”选项中会增长“Visual GDB”模板,该模板的工程中会能够看到“Linux Project Wizard”工程。此时代表Visual GDB已安装成功。

Visual GDB中头文件、连接库等基本设置你们能够参照《VisualGDB的基本使用》这篇文章来学习和操做,其连接以下:

https://blog.csdn.net/RichardWQJ/article/details/79872178

2、调试工程搭建

在完成了VS+VisualGDB的安装后,咱们就能够开始调试比特币源码了,固然在调试比特币源码以前咱们须要先编译比如特币源码,并生成bitcoind等执行程序,关于比特币源码的编译你们能够参考个人另外一篇文章《聊聊比特币(Bitcoin)客户端源码编译那些事》。若是比特币源码已编译好,咱们能够正式开始搭建比特币的调试之旅了。

第一步是新建Linux工程,具体是打开VS->文件菜单->新建->项目->模板->VisualGDB->Linux Project Wizard,在名称处填写“bitcoin”,如图所示:

下一步点击“肯定”,进入项目类型选择界面:

下一步点击“Import a project”选项,默认选择“Import a project built with other tools”。

点击下一步进入“远程计算机选择”界面,如图所示:

在该界面中,咱们需选择要调试比特币程序所在Linux计算机,在上图中咱们能够看到已有一个默认的远程计算机,这个是以前链接过的远程计算机,开发环境默认记录的地址,若是要选择新的远程计算机,则需点击下方的“Deploy the project to another Linux

computer”,而后点击“Deployment computer”的下拉框,弹出以下所示页面:

而后点击“Create a new SSH connection”选项,弹出远程计算机信息填写页面,具体填写内容以下:

填写完成后,点击“Create”,而后等待验证,若是验证成功则返回前页面,此刻继续点击“Next”便可,进入源码选择页面,在该页面中咱们点击源码目录选择按钮,在弹出的对话框中会弹出远程Linux计算机的文件目录,咱们在此找到比特币源码所在目录便可。

而后,继续下一步进入源码访问模式页面,即源码是远程访问,仍是在本地拷贝一份,此处建议选择“Copy sources locally and upload modified

files during build”选项。而后点击下一步,会在将文件拷贝至本地工程目录下,该过程须要一点时间,等待源码下载完成便可。

文件拷贝结束后,进入“编译和调试”页面,在此处咱们主要是找到编译好的bitcoind执行文件,找到该文件后,点击“Finish”便可实现调试工程的搭建。

3、开始调试

在完成调试工程搭建后,咱们在Visual Studio中能够看到建立的工程,在该工程中还包含了从远程计算机中拷贝过来的源码,其效果如图:

此时咱们能够打开源码,并设置断点,程序运行时咱们就能够在断点处进行调试了。

咱们知道比特币程序在启动时能够设置相应的参数,咱们在看比特币源码时也会遇到不一样参数状态下,比特币程序执行不一样的代码,如今有了调试方法,咱们能够更直观得理解这些参数的意义了,那么这些参数在调试工程中如何设置呢?咱们选中调试工程,点击右键,在弹出的菜单中选择“VisualGDB Project Properties”选项,而后在弹出的对话框中找到“Debug Setting”页面,在该页面中找到“Main executable arguments”项,在其后的编辑框中填入相应的参数,各参数之间以空格隔开便可。

在完成了相应参数设置后,咱们就能够启动比特币程序进行调试了。具体调试方法可详细参见Visual Studio的调试方法。

做者:菜菜子_forest 连接:https://www.jianshu.com/p/2100f734d6a7 来源:简书 简书著做权归做者全部,任何形式的转载都请联系做者得到受权并注明出处。