查看: 582|回复: 0

[评测分享] 【更适合初学者的开发板ELF 1】+ 12.GDB调试

[复制链接]
  • TA的每日心情
    奋斗
    2024-4-19 21:11
  • 签到天数: 66 天

    连续签到: 1 天

    [LV.6]常住居民II

    发表于 2023-12-17 12:32:25 | 显示全部楼层 |阅读模式
    分享到:
    1.GDB简介
    gdb 工具是 GNU 项目调试器,基于命令行。和其他的调试器一样,我们可以使用 gdb 来一 行行的运行程序、单步执行、跳入/跳出函数、设置断点、查看变量等等,它是 UNIX/LINUX 操 作系统下强大的程序调试工具。gdb 支持多种语言,包括 Ada、汇编、C/C++、D、Fortran、GO、 Objective-C、OpenCL、Modula-2、Pascal 和 Rust。关于 gdb 更多详细的信息请到 gdb 官网查阅, gdb 官网地址为:www.gnu.org。 一般的桌面 Linux 系统,比如 ubuntu、centos 等,我们可以直接运行 gdb 来调试程序。但 是嵌入式中芯片性能一般比较弱,所以直接在嵌入式系统中运行 gdb 不太现实(性能强大的嵌入 式芯片可以这么做)。嵌入式系统中一般在 PC 端运行 gdb 工具,源码也是在 PC 端,源码对应 的可执行文件放到开发板中运行。为此我们需要在开发板中运行 gdbserver,通过网络与 PC 端 的 gdb 进行通信。因此要想在 PC 上通过 gdb 调试嵌入式程序,那么需要两个东西:gdb 和 gdbserver,其中 gdb 是运行在 PC 上的,gdbserver 需要我们移植到开发板上。
    2.GDB移植
    可以使用系统本省自带的gdb工具进行测试,如果没有需要自己重安装,本次使用系统自带的工具链。
    1.png
    将交叉编译器自带的 gdb 和 gdbserver贝到开发板根文件系统的/bin 目录下:
    2.png
    3.GDB调试
    接下来使用一个实例程序进行GDB调试:
    3.png
    编译,在正常的编译命令后面加入一个-g即可。生产可执行文件:
    4.png

    将可执行文件添加到开发板,添加可执行权限,并且启动GDB调试,这个过程需要开发板和虚拟机的网络能ping通
    5.png
    接下来进入虚拟机,进行调试,如下:
    6.png
    输入:target remote 192.168.31.111:2000连接开发板,查看开发板输出,可以发现已经连接成功:
    7.png
    输入调试命令进行调试,首先输入l
    8.png
    打断点,运行:
    9.png
    当然还有其他命令,有兴趣的小伙伴可以继续探索。

    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-5-2 07:24 , Processed in 0.117201 second(s), 17 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.