Windows下调试比特币源码

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

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

从图中我们可以看到,通过VS+Visual GDB可以调试VS程序一样对Linux下的代码进行调试,即可以设置断点、查看变量值、单步调试等,所以还是很方便的。下面我将详细说明如何搭建调试环境。

一、编译环境准备

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

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

下载完成后包含如下两个文件:

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

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

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

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

Visual GDB中头文件、链接库等基本设置大家可以参照《VisualGDB的基本使用》这篇文章来学习和操作,其链接如下:

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

二、调试工程搭建

在完成了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”即可实现调试工程的搭建。

三、开始调试

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

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

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

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

如果大家想参加源码研读班可以加我微信:forest21000,第五期的研读班招募令链接如下

https://www.jianshu.com/p/f642f47459bb

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 195,898评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,401评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 143,058评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,539评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,382评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,319评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,706评论 3 386
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,370评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,664评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,715评论 2 312
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,476评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,326评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,730评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,003评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,275评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,683评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,877评论 2 335

推荐阅读更多精彩内容