马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- 目次
说明
设置方法
1)VSCODE必备插件
2)设置launch.json文件,用于GDB调试
调试步骤
目的板运行程序
1)已启动程序,通过attach方式进入调试
2)通过gdbserver启动时加载程序(程序路径根据实际环境填写)
vscode上启动gdb
1)连接远程开发板,点击爬虫
2)启动gdb调试
3)调试快捷键
说明
在嵌入式研发过程中,尤其是Linux环境下开发工程师,我信赖许多都履历过通过GDB去单步调试程序,但通过命令方式时总会碰到过多的gdb命令、查看堆栈调度、内存等不方便环境(固然假如你是GDB指令集大神可忽略该文章)。由此看来假如有很好的IDE或者较好的插件集成GDB调试方式通过图形化的方式进行单步调试可提高研发效率。我所用过的有:eclipse与vscode等均是比较好用的,本章节重点介绍vscode通过插件方式实现远程调试。
C/C++
C/C++ Extension Pack
GDB Debug
Remote Development
2)设置launch.json文件,用于GDB调试
- {
- // 使用 IntelliSense 了解相关属性。
- // 悬停以查看现有属性的描述。
- // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
- "version": "0.2.0",
- "configurations": [
- {
- "name": "(gdb) 启动",
- "type": "cppdbg",
- "request": "launch",
- "program": "${workspaceFolder}/output/bin/xcpserver",
- "args": [],
- "stopAtEntry": false,
- "cwd": "${workspaceFolder}/",
- "environment": [],
- "externalConsole": false,
- "MIMode": "gdb",
- "setupCommands": [
- {
- "description": "为 gdb 启用整齐打印",
- "text": "-enable-pretty-printing",
- "ignoreFailures": true
- },
- {
- "description": "将反汇编风格设置为 Intel",
- "text": "-gdb-set disassembly-flavor intel",
- "ignoreFailures": true
- }
- ],
- "miDebuggerPath":"/opt/xilinx/sdk/sysroots/x86_64-petalinux-linux/usr/bin/aarch64-xilinx-linux/aarch64-xilinx-linux-gdb",
- "miDebuggerServerAddress":"192.168.1.10:9008"
- }
- ]
- }
复制代码 上述设置参数解释,根据个人程序进行对应修改
- 顶层参数:
- version:版本号,指定配置文件的格式版本。当前值为 0.2.0,是 Visual Studio Code 的调试配置文件的常见版本。
- configurations:配置数组,其中每个对象定义一种调试配置。可以设置多个配置,用于不同的调试场景
复制代码 顶层参数:
version:版本号,指定设置文件的格式版本。当前值为 0.2.0,是 Visual Studio Code 的调试设置文件的常见版本。
configurations:设置数组,其中每个对象定义一种调试设置。可以设置多个设置,用于差异的调试场景
设置字段:
name:设置名称,出现在调试面板中,用于选择调试设置。当前值为 "(gdb) 启动"
type:调试器的类型,当前值为 "cppdbg",表现利用 C++ 调试器扩展
request:调试请求的类型,当前设置为launch,可根据实际利用选择设置
launch:启动程序进行调试
attach:附加到已经运行的进程进行调试
program:要调试的可执行程序的路径,
当前值为 "${workspaceFolder}/output/bin/xcpserver"
${workspaceFolder} 是当前工作区根目次
xcpserver为详细需要远程调试得程序根据实际环境选择
argv:启动程序时转达的命令行参数,当前值为 [](空数组),表现不转达任何参数
stopAtEntry:是否在程序入口点处暂停,当前值为 false
true:在入口点暂停;false:直接运行到第一个断点或结束
cwd:调试器运行的工作目次,当前值为 "${workspaceFolder}/",即工作区根目次
environment:设置环境变量的数组,每个环境变量以 name 和 value 的情势指定,
当前值为 [],表现利用默认环境变量
externalConsole:是否利用外部终端来表现程序的标准输出,当前为fasle
true:利用外部终端;false:在 VS Code 的调试控制台中表现
MIMode:指定利用哪种调试器模式,当前值为 "gdb",表现利用 GNU 调试器(GDB)
setupCommands:调试器启动时运行的一组命令,通常用于设置调试器的行为
description:命令的描述,便于阅读和管理
text:实际执行的 GDB 命令
ignoreFailures:命令失败时是否忽略错误
当前设置包括:启用整洁打印:-enable-pretty-printing,用于以更友好的格式表现 STL 和其他复杂类型的内容;
设置反汇编风格为 Intel:-gdb-set disassembly-flavor intel,使 GDB 输出的反汇编代码利用 Intel 语法(而非 AT&T 语法)
miDebuggerPath:指定用于调试的 GDB 可执行文件路径,根据实际toolchain环境修改
/opt/xilinx/sdk/sysroots/x86_64-petalinux-linux/usr/bin/aarch64-xilinx-linux/aarch64-xilinx-linux-gdb ,表明调试器是用于 AArch64 架构的交叉调试器
miDebuggerServerAddress:指定 GDB 远程调试服务器的地点,通常用于远程调试,当前值为 "192.168.1.10:9008";根据目的板得IP与绑定端口进行设置。
此设置文件重要用于:
- 在本地通过 VS Code 调试运行于远程设备(AArch64 架构)的程序。
- 设置了远程 GDB 调试环境(miDebuggerServerAddress 和 miDebuggerPath)。
- 设置了常见的调试选项(比方整洁打印和 Intel 汇编语法)。
假如需要修改,可以根据实际项目需求调解路径、参数或调试行为
目的板运行程序
1)已启动程序,通过attach方式进入调试
- gdbserver :9008 --attach 9149
复制代码
2)通过gdbserver启动时加载程序(程序路径根据实际环境填写)
- gdbserver :9008 ./xcpserver
复制代码
vscode上启动gdb
1)连接远程开发板,点击爬虫
2)启动gdb调试
3)调试快捷键
F5制止运行、开始运行;
F10执行下一步;
F11进入函数执行;
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |