美文网首页
【Bitcoin】VS code 调试代码

【Bitcoin】VS code 调试代码

作者: 周宇盛 | 来源:发表于2019-05-30 22:22 被阅读0次

    使用 VS code 调试代码相比原生的gdb调试代码会带来一些好处:

    • 更方便的监测变量值变化
    • 更方便的翻阅当前执行代码所在文件

    主要步骤:

    1. debug模式编译bitcoin
    2. VScode配置调试的命令
    3. 打断点调试

    步骤 1:安装调试插件

    VS code 默认只支持 node.js 语言的调试,其他语言的调试需要安装插件。


    搜索 C++,安装插件。不过要注意的是,插件本身并不具备编译、调试的能力,需要另外使用软件进行编译、调试[1]

    步骤2:配置

    调试前需要手动配置launch.json文件指定调试入口,点击 Open Configurations开始配置:

    配置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: 配置的名称,在左侧调试框可以选择使用哪个配置

    步骤 3:编译

    调试前需要先将程序编译到上述设置的指定位置,可以在命令行启动编译。也可以通过配置.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:跳出子函数

    1. https://code.visualstudio.com/docs/languages/cpp

    2. https://www.jianshu.com/p/2b6a3d41f641

    3. https://code.visualstudio.com/docs/editor/tasks

    4. https://github.com/bitcoin/bitcoin/blob/57acfcb9fd051556fc1f68ba49f109512c0cc846/doc/build-unix.md

    5. https://github.com/bitcoin/bitcoin/blob/57acfcb9fd051556fc1f68ba49f109512c0cc846/doc/developer-notes.md#development-tips-and-tricks

    6. http://www.cnblogs.com/elect-fans/archive/2012/03/20/2408569.html

    相关文章

      网友评论

          本文标题:【Bitcoin】VS code 调试代码

          本文链接:https://www.haomeiwen.com/subject/hngbtctx.html