VSCODE 使用GDB

简介

GNU调试器(GNU Debugger,简称GDB)是GNU项目开发的一款功能强大的命令行调试工具,主要用于C、C++等编程语言的调试。作为Linux/Unix系统下最常用的调试器之一。

一般的桌面PC Linux 系统,比如 ubuntu、centos 等,我们可以直接运行 gdb 来调试程序。但是嵌入式中芯片性能一般比较弱,所以直接在嵌入式系统中运行 gdb 不太现实(性能强大的嵌入式芯片可以这么做)。

  • 嵌入式系统中一般在 PC 端运行 gdb 工具,源码在 PC 端,源码的可执行文件放到开发板中运行。
  • 在开发板中运行 gdbserver,通过网络与 PC 端的 gdb 进行通信。
  • 在 PC 上通过 gdb 调试嵌入式程序,需要两个东西:gdb 和gdbserver gdb 运行在 PC 上的,gdbserver 移植到开发板上。

GDB 移植

gdbserver移植

GDB使用

第一步,编译程序

c 复制代码
arm-linux-gnueabihf-gcc gdbtest.c -o gdbtest -g //编译测试程序,注意-g 选项

第二步,启动开发板端命令

c 复制代码
gdbserver 192.168.1.253:2001 gdbtest //启动开发板上的 gdbserver

192.168.1.253 为PC机的 IP 地址

sr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin

第三步,PC端命令

c 复制代码
arm-linux-gdb gdbtest //启动gdb
target remote 192.168.1.251:2001 //连接到开发板上

arm-linux-gdb为gdb工具名称,需要跟环境变量中的一致 。/etc/profile

bash 复制代码
export PATH=$PATH:/u

192.168.1.251 就是开发板 IP 地址

gdb命令

vscode插件 Remote Development"

安装插件Remote Development"

点击运行->添加配置

打开launch.json文件

c 复制代码
{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "gdbtest",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/gdbtest/gdbtest",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}/gdbtest",
            "miDebuggerPath":
            //"/home/kai/linux/IMX6ULL/tool/gdb/bin/arm-linux-gnueabihf-gdb",
            "/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gdb",
            "miDebuggerServerAddress": "192.168.0.150:2001"
        }
    ]
}

调试方法类似,先运行gdbserver,然后直接点击vscode上的开始调试

相关推荐
爱吃羊的老虎6 分钟前
从零开始安装到精通的 Jupyter Notebook 完整教程
ide·python·jupyter
arthur.dy.lee8 分钟前
在pycharm中使用powershell7解决conda,ohmyposh报错的问题
ide·pycharm·conda
Dillon Dong9 分钟前
STM32嵌入式:如何使用VSCode EIDE来获取flash块数据并转换成可视化的数据 来判断源头数据是否错误
vscode·stm32·嵌入式硬件
golang学习记25 分钟前
JetBrains 推出革命性产品:AI IDE (AIR) —— AI编程全新范式!
ide·人工智能
早日退休!!!1 小时前
GCC与LLVM编译器深度解析:核心原理与差异对比(小白向)
c++·编辑器
One_Piece_Fu1 小时前
2026年node.js最新版下载(24.12.0LTS)安装教程(详细)
vscode·学习·node.js
stevenzqzq14 小时前
ctrl +B和ctrl+shift +B的区别
android·ide·android studio
ASEpochs14 小时前
Vsocde中‘sh’不是内部或外部命令,也不是可运行的程序或批量处理文件--已解决
git·vscode·bash
深念Y19 小时前
删除IDEA中的JDK列表项
java·ide·jdk·intellij-idea·idea·sdk
安全渗透Hacker19 小时前
IDEA 中主流 API 插件对比及实操建议
java·ide·intellij-idea