Linux应用编程

vscode 远程调试arm-linux c/c++程序

2018-12-15  本文已影响0人  JalynFang

1. 交叉编译gdb与gdbserver程序

gdb和gdbserver交叉编译不复杂,源码可以在官网上下载:https://ftp.gnu.org/gnu/gdb/ ,也可以使用平台厂商会提供相关源码(与工具链匹配的版本)。

➜  arm-linux-gcc # find -name gdb 
./share/doc/gdb
./share/gdb
./share/gdb/python/gdb
./include/gdb
➜  arm-linux-gcc # find -name gdbserver  
./bin/gdbserver
➜  arm-linux-gcc #

2. 配置vscode

配置configuration,launch.json(如何打开该配置文件可参考上一节)配置如下:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) cbox factory",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/factory",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": true,
            "MIMode": "gdb", 
            "miDebuggerPath": "/home/work/project/cbox/gcc-linaro-4.9-2014.11-x86_64_arm-linux-gnueabihf/bin/gdb",
            "miDebuggerServerAddress": "192.168.70.152:2018",  
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        }
    ]
}

远程调试,launch.json配置要点:

3. 远程调试嵌入式程序

./gdbserver 192.168.202.128:2018 ./factory

192.168.202.128:2018:主机IP地址和设置调试的端口;
factory:被调试的运用程序;

这一步需要远端登录到调试板上执行,可直接借助vscode的terminal远程登录到板子上操作:

➜   ssh remoteserver -l name
或
➜   ssh name@remoteserver

搭建过程中出现的问题记录:
由于调试过程中使用的gdb第一次拿到的是工具链share/gdb,在配置完launch.json后,F5进行调试,总是报错:

Unable to start debugging. The value of miDebuggerPath is invalid

看来是gdb这厮的祸,再根据编译链的prefix查找下,这时找到了编译链bin目录下的:arm-linux-gnueabihf-gdb,看着也更应该是在这个路径下,哈哈。由于launch.json中“MIMode”属性的限制:

➜   cp bin/arm-linux-gnueabihf-gdb bin/gdb

再次F5,OK,完美运行。

错误记录:
如果运行时报错:


上一篇 下一篇

猜你喜欢

热点阅读