【Bitcoin】VS|【Bitcoin】VS code 调试代码
使用 VS code 调试代码相比原生的gdb
调试代码会带来一些好处:
- 更方便的监测变量值变化
- 更方便的翻阅当前执行代码所在文件
- debug模式编译bitcoin
- VScode配置调试的命令
- 打断点调试
node.js
语言的调试,其他语言的调试需要安装插件。文章图片
搜索 C++,安装插件。不过要注意的是,插件本身并不具备编译、调试的能力,需要另外使用软件进行编译、调试 [1]。
文章图片
步骤2:配置 调试前需要手动配置
launch.json
文件指定调试入口,点击 Open Configurations开始配置:文章图片
【【Bitcoin】VS|【Bitcoin】VS code 调试代码】配置VS code配置文件:
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/src/bitcoind",
"args": ["-regtest"],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": true,
"MIMode": "gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}
配置文件的路径为
./vscode/launch.json
json
文件中各个参数的含义:-
program
:程序编译后得到的可执行文件,即调试的入口 -
args
:可执行文件的参数,以上图中指定-regtest
为例 -
name
: 配置的名称,在左侧调试框可以选择使用哪个配置
.vscode/tasks.json
文件设置任务,在 VS code 内启动编译程序[2][3].bitcoin core 的编译命令如下[4],注意添加给 configure 添加参数
--enable-debug
[5]:cd bitcoin/
./autogen.sh
./configure --disable-wallet --without-gui --without-miniupnpc --enable-debug
make check
注意shell不要用fish,否则会失败,因为语法不兼容。
步骤四:调试 点击行号左侧设置断点:
文章图片
点击左侧调试工具栏的“开始”按钮,或者按 F5 快捷键,开始调试:
文章图片
点击屏幕上方的 step into 运行下一步:
文章图片
vs code 调试时各个按钮[6]:
- step into:进入子函数
- step over:越过子函数,但子函数会执行
- step out:跳出子函数
- https://code.visualstudio.com/docs/languages/cpp ?
- https://www.jianshu.com/p/2b6a3d41f641 ?
- https://code.visualstudio.com/docs/editor/tasks ?
- https://github.com/bitcoin/bitcoin/blob/57acfcb9fd051556fc1f68ba49f109512c0cc846/doc/build-unix.md ?
- https://github.com/bitcoin/bitcoin/blob/57acfcb9fd051556fc1f68ba49f109512c0cc846/doc/developer-notes.md#development-tips-and-tricks ?
- http://www.cnblogs.com/elect-fans/archive/2012/03/20/2408569.html ?
推荐阅读
- 宽容谁
- 我要做大厨
- 增长黑客的海盗法则
- 画画吗()
- 2019-02-13——今天谈梦想()
- 远去的风筝
- 三十年后的广场舞大爷
- 叙述作文
- 20190302|20190302 复盘翻盘
- 学无止境,人生还很长