在vscode中使用gdb调试

之前一直使用的是linux终端的gdb,因为调试的对象是riscv,而我们使用的环境是x86的,所以必须用emulator。目前的工作是对assembler进行移植,并利用自己的编写的c++文件为完成测试,并不需要用到riscv环境,直接使用x86的环境进行gdb调试,这个时候可以使用vscode进行gdb。

  1. 单独打开一个vscode工程文件
  2. 修改launch.json文件
{
    "version": "0.2.0",
    "configurations": [
        
        {
            "name": "(gdb) Launch",
            "type": "cppdbg",
            "request": "launch",
            "program": "/home/user/codes/zhimo-aosp-d_art/out/host/linux-x86/nativetest64/art_compiler_host_tests/assembler_riscv64_test",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            // "preLaunchTask": "C/C++: g++ build active file",
            "miDebuggerPath": "/usr/bin/gdb"
        }
    ]
    
}

program为生成的可知性文件的路径。

  1. 在需要打断点的程序前按个红点,表示需要在这里打断点


    image.png
  2. 点击Run->start debugging
  3. 第一个按钮表示继续运行到下一个断点,没有下一个断点的话就直接运行结束
    第二个按钮表示gdb的n,为下一步
    第三个按钮为gdb的s,进入函数内部
    第四个按钮跳出当前步骤
    第五个按钮表示重新开始调试
    最后一个按钮暂定


    gdb

    6.可以在左侧查看断点打了多少个,并且可以使用watch对类,变量等进行监测


    watch
  4. 在调试的时候可以将鼠标放在变量上查看变量的值


    显示变量值

    注意:容器的值暂时还看不了,如果是函数模板,也查看不了。

有了vscode的调试工具,在调试的时候相比于终端的gdb,效率不止高了一点点。注意,调试不能返回上一步。

你可能感兴趣的:(在vscode中使用gdb调试)