【IMX6ULL笔记】-- GDB安装和VSCode图形调试

GDB 简介

GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。

GDB 移植

方法1:

若ubuntu装了交叉编译器(正常来说肯定是装了的),那么就已经集成了自带gdb,只需要将gdbserver拷贝到开发板文件系统指定目录/bin/

请添加图片描述

测试gdb相关信息

请添加图片描述

方法2:

这个比较麻烦,需要官方网站获取 gdbgdbserver 源码,路径地址:Download GDB (sourceware.org)

解压编译步骤:

tar -vxzf gdb-9.1.tar.gz  //解压后生成gdb-9.1
cd gdb-9.1 
mkdir build  //需在gdb下新建 build 目录
cd build
../configure --target=arm-linux-gnueabihf --prefix=/home/l17/tool/gdb
make //编译
make install //安装

可能会出现问题:

gdb-9.1/missing: makeinfo: not found
...
Makefile:490: recipe for target 'gdb.info' failed
make[4]: *** [gdb.info] Error 127
...
Makefile:2006: recipe for target 'subdir_do' failed
make[3]: *** [subdir_do] Error 1
...
Makefile:851: recipe for target 'all' failed
make: *** [all] Error 2

解决办法:

sudo apt install texinfo

交叉编译gdbserver,执行完下面命令后会生成 gdbserver,将gdbserver拷贝到开发板文件系统指定目录/bin/ (建议方法1)

cd gdb-9.1/gdb/gdbserver  //进入到 gdbserver 目录
./configure --target=arm-linux-gnueabihf --host=arm-linux-gnueabihf
make CC=arm-linux-gnueabihf-gcc  //交叉编译 gdbserver

添加环境变量

配置完成后,需要进入ubuntu的/etc/profile修改环境变量

方法1:因为安装了工具链,通常不需要做任何修改
export PATH=/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin:$PATH
方法2:确定当前
export PATH=/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin:/home/
l17/tool/gdb/bin:$PATH

调试测试

写个简单的应用

/**************************************Start of file************************************/




/*--------------------------------------------------------------------------------------
Includes
*/
 #include <stdio.h>
 #include <unistd.h>

 int main(int argc, char *argv[])
 {
    unsigned int timerCnt = 0;

    while(1) 
    {
        printf("system runing times:%d\r\n", timerCnt);
        timerCnt++;
        sleep(1);
    }
}

/****************************************End of file************************************/
  • ubuntu交叉编译gdbApp.c输出执行文件
arm-linux-gnueabihf-gcc gdbApp.c -o gdbApp -g
  • 将执行文件拷贝到开发板(文件系统nfs)
cp gdbApp /home/l17/nfs/rootfs/
  • 启动开发板,执行gdb服务命令(输入调试主机,也就ubuntu ip地址)
gdbserver 192.168.0.67:2001 gdbApp //启动开发板上的 gdbserver

请添加图片描述

  • ubuntu启动gdb调试指定代码
arm-linux-gnueabihf-gdb gdbApp
  • gdb窗口输入如下命令,连接调试设备(需知调试设备ip地址)
target remote 192.168.0.50:2001

请添加图片描述

使用gdb相关命令执行调试工作(具体可以百度)

  • l 命令,擦寻源码
  • b命令,设置调试断点
  • c命令,执行下一个断点
  • q命令,退出调试

基于VSCode 界面调试

  • 新建文件夹: .vscode,新建文件:launch.json

请添加图片描述

  • 运行->添加配置 选择:c/c++:(gdb)启动,会自动生成配置信息(若需要知道红色字体具体描述啥意思,鼠标指向它会有提示信息,vscode yyds)

请添加图片描述

  • 修改生成的配置信息,修改信息如下:

请添加图片描述

{
    "configurations": [
    {
        "name": "gdbApp",
        "type": "cppdbg",
        "request": "launch",
        "program": "${workspaceFolder}/gdbApp",
        "args": [],
        "stopAtEntry": false,
        "cwd": "${workspaceFolder}",
        "environment": [],
        "externalConsole": false,
        "MIMode": "gdb",
        "miDebuggerPath":
        "/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gdb",
        "miDebuggerServerAddress": "192.168.0.50:2001"
        "setupCommands": [
            {
                "description": "为 gdb 启用整齐打印",
                "text": "-enable-pretty-printing",
                "ignoreFailures": true
            },
            {
                "description":  "将反汇编风格设置为 Intel",
                "text": "-gdb-set disassembly-flavor intel",
                "ignoreFailures": true
            }
        ]
    }
    ]
}
运行调试
  • 启动开发板,执行gdb服务命令(输入调试主机,也就ubuntu ip地址)
gdbserver 192.168.0.67:2001 gdbApp //启动开发板上的 gdbserver
  • 运行->启动调试

这下可以像 keil iar ccs vs 等等ide工具一样使用

请添加图片描述
参考:正点原子驱动开发指南等文档

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值