• vscode+gdbserver开发软件方法


            GDB(the GNU Project Debugger)是 GNU 发布的一个功能强大的 UNIX 程序调试工具,
    可以调试 Ada、 C、 C++、 Objective-C 和 Pascal 等多种语言的程序,可以在大多数 UNIX 和
    Microsoft Windows 变种上运行。 GDB 既可以在本地调试,也可以进行远程调试。

     通过 GDB 能够对程序进行如下调试:
    ● 运行程序,还可以给程序加上某些参数,指定程序的行为。
    ● 使程序在特定的条件下停止。
    ● 检查程序停止时的运行状态。
    ● 改变程序的参数,以纠正程序中的错误。

    需要使用 GDB 调试的程序,在编译的时候必须加-g 参数,开启调试信息。如果没开启无法使用断点或其他功能。

          进行嵌入式 Linux 开发, 更多的是进行 GDB 远程调试。 GDB 远程调试与本地调试相比,多了远程连接这一步。远程部分我们使用vscode完成软件编写与调试。

          GDB 远程调试需要两个程序,一个是目标机的 GDBServer,另一个是运行于本地机器
    的与之对应的 GDB,对于 ARM 嵌入式 Linux 而言,通常是 arm-linux-gdb。远程系统和本地
    系统之间通过网线连接。

           进行远程 GDB 调试, 首先需要在目标系统中启动 gdbserver, 这就要求部署的目标板文
    件系统必须包含有 gdbserver 程序, 否则远程 GDB 调试将无法进行, 这里假定目标板包含
    gdbserver 程序。

           如启动需要调试的程序:

           gdbserver 192.168.2.251:2000 udp_server 

           //192.168.2.251:2000  表示ubuntu16的IP与端口

           //udp_server 是可执行的应用程序

          

          可以看到执行后,启动等待远程连接

          步骤如下:

          vscode 需要安装好插件  Remote Development 。

          vscode 打开工程文件

          编译的时候 生产的目标文件需要 把调试信息加载进来。 -g

          点击“调试 ”->“打开配置”,然后选择“ C++(GDB/LLDB)”选项,然后会在 .vscode文件夹下生成launch.json文件

           修改文件参考如下:

    1. {
    2. // 使用 IntelliSense 了解相关属性。
    3. // 悬停以查看现有属性的描述。
    4. // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    5. "version": "0.2.0",
    6. "configurations": [
    7. {
    8. "name": "udp_server",
    9. "type": "cppdbg",
    10. "request": "launch",
    11. "program": "/home/vmuser/app/udp/udptest/udp_server",
    12. "args": [],
    13. "stopAtEntry": false,
    14. "cwd": "/home/vmuser/app/udp/udptest",
    15. "environment": [],
    16. "externalConsole": false,
    17. "MIMode": "gdb",
    18. "setupCommands": [
    19. {
    20. "description": "为 gdb 启用整齐打印",
    21. "text": "-enable-pretty-printing",
    22. "ignoreFailures": true
    23. }
    24. ],
    25. "miDebuggerPath": "/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gdb",
    26. //"miDebuggerPath": "/opt/fsl-imx-x11/4.1.15-2.1.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi",
    27. "miDebuggerServerAddress": "192.168.2.96:2000"
    28. }
    29. ]
    30. }

    ①、name:调试的项目名

    ②、program:需要调试的应用程序可执行文件路径。

    ③、cwd:需要调试的应用程序源码路径。

    ④、miDebuggerPath:此项需要手动添加,用于指定所使用的交叉编译器 gdb路径。

    ⑤、miDebuggerServerAddress:此项需要手动添加,远程 gdbserver服务器地址,也就是开发板地址
     

    点击 VSCode上的“调试” ”->“启动调试”按钮开启调试

    控制程序运行。

    简单记录一下

    本文参考:嵌入式VSCode+gdbserver图形化调试环境搭建与使用_hurryddd的博客-CSDN博客_gdbserver vscode

          

             

          

           
     

        
     


     

  • 相关阅读:
    Spring中Bean注入的几种方式
    【JavaSE】String类的重点语法知识汇总
    【Linux】进程概念与进程状态
    【★★★★★ 第8章 排序 2022 9.10】
    Scala的变量和数据类型
    MySQL索引——从入门到出土
    ELK 使用 metricbeat监控数据
    功能强大性能更佳的 Sass 常用指令
    Unity中国、Cocos为OpenHarmony游戏生态插上腾飞的翅膀
    flink 1.13.2的pom.xml文件模板
  • 原文地址:https://blog.csdn.net/u012210286/article/details/126163100