200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 通过vscode进行嵌入式linux arm开发板gdb调试

通过vscode进行嵌入式linux arm开发板gdb调试

时间:2022-04-25 14:39:24

相关推荐

通过vscode进行嵌入式linux arm开发板gdb调试

下载和安装vscode,下载 vscode for windows 地址:Visual Studio Code - Code Editing. Redefined安装 "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>

intmain()

{

structpasswd*pwd;

uid_tuserid;

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;

return0;

}

使用目标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调试系统架构图

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。