zoukankan      html  css  js  c++  java
  • 比特币学习笔记(二)---在windows下调试比特币源码

    根据我一贯的学习经验,学习开源代码的话,单单看是不够的,必须一边看一边调试才能尽快理解,所以我们要想法搭建windows下bitcoin源码的调试环境。

    紧接着昨天的进度,想要调试linux下的比特币源码,我们首先要打通调试器到linux下的通道(我想大部分人应该跟我一样对gdb深恶痛绝吧,笑),这就需要能够以ssh连接的方式连上本机的linux。

    以ssh连接的方式连上本机的linux

    第一步,修改linux的ssh连接参数,打开sshd_config文件修改配置参数,文件位于

    C:Users\%USERNAME%AppDataLocalPackagesCanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgscLocalState
    ootfsetcsshsshd_config

    加入以下几项

    Port 7777   #设置ssh的端口号, 由于22在windows中有别的用处, 尽量不修改系统的端口号
    PermitRootLogin yes   # 可以root远程登录
    PasswordAuthentication yes     # 密码验证登录
    AllowUsers sky # 远程登录时的用户名,如果你直接使用root用户这条可以不加

    第二步,打开wsl的linux窗口,重启本机linux的ssh服务

    sudo service ssh --full-restart

    我在这里重启失败了,系统提示:

    root@SD-201704110950:/etc/ssh# sudo service ssh --full-restart
     * Stopping OpenBSD Secure Shell server sshd                                                                                                                                                                                          [ OK ]
     * Starting OpenBSD Secure Shell server sshd                                                                                                                                                                                                 Could not load host key: /etc/ssh/ssh_host_rsa_key
    Could not load host key: /etc/ssh/ssh_host_ecdsa_key
    Could not load host key: /etc/ssh/ssh_host_ed25519_key

    这是由于我的openssl安装有问题导致的,执行以下两行代码重新安装即可

    $ sudo rm -r /etc/ssh/ssh*key
    $ sudo dpkg-reconfigure openssh-server

    重新安装后,因为配置文件也被一并重置了,所以还需要重新走一遍第一步才行,这里不再赘述。

    第二遍重启后成功,打开xshell,输入127.0.0.1和端口号用户名密码,提示连接成功,如下图所示

    注意:WSL默认是不会自动开启SSH服务的,如果想改成自启动,需要执行命令:

    ln -s /etc/init.d/ssh /etc/rc3.d/S100ssh

    如何调试比特币源码

    我这边主要是用vs2015+visual gdb的方式编译调试

    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的调试方法。

    本文借鉴文章:

    https://www.jianshu.com/p/2100f734d6a7?utm_source=oschina-app

  • 相关阅读:
    sencha touch 扩展篇之将sencha touch打包成安装程序(上)- 使用sencha cmd打包安装程序
    sencha touch 扩展篇之使用sass自定义主题样式 (下)通过css修改官方组件样式以及自定义图标
    一个不错的android组件的网站
    sencha touch 扩展篇之使用sass自定义主题样式 (上)使用官方的api修改主题样式
    sencha touch 入门系列 (九) sencha touch 布局layout
    面试题总结
    国外接活网站Elance, Freelancer和ScriptLance的介绍和对比
    sencha touch 入门系列 扩展篇之sencha touch 项目打包压缩
    Android Design Support Library——Navigation View
    设计模式——命令模式
  • 原文地址:https://www.cnblogs.com/lsm19870508/p/11473886.html
Copyright © 2011-2022 走看看