1. 下载和安装vscode, 下载 vscode for windows 地址:  Visual Studio Code - Code Editing. Redefined
  2. 安装 "remote-ssh", "c/c++" 和"gdb debug" ,用于对windows 与linux服务器进行ssh连接和进行gdb调

     2.1 安装remote-ssh

     2.2 安装 c/c++

 2.3 安装 gdb debug   

 

3. 在linux服务器上创建调试程序

#include <unistd.h>
#include <pwd.h>
#include <iostream>
int main()
{
    struct passwd* pwd;
    uid_t userid;
    userid = getuid();
    pwd = getpwuid(userid);
    std::cout << "pw_name:" << pwd->pw_name << std::endl;
    std::cout << "pw_passwd:" << pwd->pw_passwd << std::endl;
    std::cout << "pw_uid:" << pwd->pw_uid << std::endl;
    std::cout << "pw_gid:" << pwd->pw_gid << std::endl;
    std::cout << "pw_gecos:" << pwd->pw_gecos << std::endl;
    std::cout << "pw_dir:" << pwd->pw_dir << std::endl;
    std::cout << "pw_shell:" << pwd->pw_shell << std::endl;
    return 0;
}

使用目标ARM板子相对应的交叉编译工具链进行编译,参考如下命令:

user@ubuntu:~/vscode_gdb$ pwd
/home/user/vscode_gdb
user@ubuntu:~/vscode_gdb$ g++ -g main.cpp -o arm_test

 4. 通过 remote-ssh 连接windows 与linux 服务器

4.1 添加ssh target, 输入linux 服务器 ssh 用户名:  ssh user@192.168.81.128

4.2 选择  ssh configuration file

 

4.3 选择 connect

 4.4 选择要连接的PC, 右击 Connect to Host in Current Window

4.5 输入密码然后按 "Enter"

4.6 这时我们成功登陆linux服务器

 4.7 打开测试代码目录

4.8 再次输入 ssh 密码

 4.9 这时我们能看到源代码

 4.10 创建配置文件 lauch.json 然后运行调试

 4.11 新的 lauch.json 如下

用以下配置内容替换 lauch.json

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: Debugging in Visual Studio Code
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) 启动", //配置名称,显示在配置下拉菜单中
            "type": "cppdbg", //配置类型
            "request": "launch", //请求配置类型,可以是启动或者是附加
            "program": "/home/user/vscode_gdb/arm_test", // linux上程序可执行文件的完整路径         
            "args": [], //传递给程序的命令行参数
            "stopAtEntry": false,//可选参数,如果为true,调试程序应该在入口(main)处停止
            "cwd": "${workspaceFolder}", //目标的工作目录
            "environment": [], //表示要预设的环境变量
            "externalConsole": false,//如果为true,则为调试对象启动控制台
            "MIMode": "gdb",//要连接到的控制台启动程序
            "setupCommands": [ //为了安装基础调试程序而执行的一个或多个GDB/LLDB命令
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "miDebuggerPath": "/opt/***/arm-oe-linux-gnueabi-gdb", // linux上适合目标板的arm格式

// gdb程序路径,作为与目标板gdbserver通信的gdb client运行于linux服务器上
            "miDebuggerServerAddress": "192.168.225.1:9001"  //目标板上gdbserver监听的IP地址和 // 端口号      
        }
    ]
}

其中 "program", "miDebuggerPath" 和 "miDebuggerServerAddress" 是需要根据实际修改的。 

4.12 把嵌入式arm板子上运行的 gdbserver 上传到板子上,运行测试程序。

# ./gdbserver :9001 arm_test

4.13 设置断点然后运行gdb调试

 4.14 成功,最终运行结果

 

5.  通过vscode进行嵌入式linux arm开发板gdb调试系统架构图

 

 

 

 

 

 

Logo

更多推荐