windows下搭建bitcoin调试环境
1. bitcoin编译:
bitcoin可以通过WSL在windows下编译、安装(当然也可以安装虚拟机或者docker后,通过x11forward 调试),
具体参考github:https://github.com/bitcoin/bitcoin/blob/master/doc/build-windows.md和https://github.com/bitcoin/bitcoin/blob/master/depends/README.md
安装依赖文件的部分不赘述,参考上面的两个文档,下面是之后的步骤
1) git clone https://github.com/bitcoin/bitcoin.git
2) PATH=$(echo "$PATH" | sed -e 's/:\/mnt.*//g')
3)cd depends
4)make HOST=i686-w64-mingw32
5)cd..
6) ./autogen.sh
7) sudo make clean,可选,如果重头编译,请执行
8)CONFIG_SITE=$PWD/depends/i686-w64-mingw32/share/config.site sudo ./configure --enable-debug --prefix=/

注意高亮的os是linux,否则后面没有办法调试
9)sudo make -j 2
编译后的结果如下:

4. sudo make install DSETDIR=“安装的位置”
在安装位置的bin文件夹下是带有调试信息的可执行文件:

以下几点需要注意:
1) 严格按照https://github.com/bitcoin/bitcoin/blob/master/doc/dependencies.md或者参考https://github.com/bitcoin/bitcoin/blob/master/doc/build-unix.md下的Linux Distribution Specific Instructions 要求把需要的库安装到位
2)挂一个VPN,中间要下载很多依赖库,否则很慢
2. GDB调试:
可以参考:https://gist.github.com/gubatron/36784ee38e45cb4bf4c7a82ecc87b6a8
推荐使用cgdb调试,或者gdb进入后,ctrl+x+a调出file窗口调试。
bitcoind命令从代码中就能找到对应的含义,如果想要图形化界面的调试,请往下看,方法很多:1. WSL下使用gdbserver,在windows下用vs或者clion等工具remote debug ;2. 在WSL下安装clion等工具,直接调试,本文使用的是第二种方案
3. 安装Xming:
WSL默认不支持图形化界面,需要先安装好,本文安装免费的Xming,参考:https://www.jianshu.com/p/aca81f8c7f08
4. 安装Clion:
参考https://www.jetbrains.com/help/clion/install-and-set-up-product.html 中linux安装
5. Clion调试:
1) 在安装目录:sudo ./clion.sh
弹出如下图:选择import project form sources,注意要先执行make HOST=i686-w64-mingw32,保证依赖文件的完整

2)导入工程后,先使用test用例测试一下:
导入工程自动生成CmakeList文件,如果没有问题,此后也可以方便阅读代码:

3)配置调试环境,开始调试:
按照如下配置:
设置program arguments: -regtest -daemon -datadir=/mnt/c/3_code/C/data

将下面的build选项去掉,clion编译很慢,最好在WSL编译后,将bitcoind*文件拷贝到bitcoin/cmake-build-debug下,改名为工程名字。
设置断点,点击debug按钮后,如下:
