0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

TLT507-GDB程序调试方法说明

Tronlong创龙科技 来源:Tronlong创龙科技 作者:Tronlong创龙科技 2024-01-26 10:11 次阅读

1 演示程序创建与编译

在 Ubuntu 工作目录下执行如下命令,新建一个 GDB 调试演示程序。

Host# mkdir demo

Host# cd demo/

Host# vi demo.c

wKgZomW4TM6AVbMYAACNpGdUnX4262.png

#include

void show() {

printf("shown");

}

int main(int argc, char *argv[])

{

int arr[4] = {1, 2, 3, 4};

int i = 0;

for (i = 0; i < 4; i++) {

printf("arr[%d]: %dn", i, arr[i]);

}

show();

return 0;

}

执行如下命令,进行程序编译,编译完成将会生成 demo 可执行程序。

备注:编译时需添加-g 参数,生成的可执行文件才带有调试信息

Host# export PATH=/home/tronlong/T507/LinuxSDK/out/t507/tlt507-evm/longan/buildro

ot/host/bin:$PATH

Host# aarch64-linux-gnu-gcc -g demo.c -o demo

wKgaomW4TO6ACIFvAABQsG2DKAo909.png

评估板与 PC 机连接至同一个路由器后进行上电,将编译后的可执行文件 demo 拷贝

至评估板文件系统任意目录下。

Target#

ls

wKgZomW4TPOAYlSvAAAQn4AFhLI438.png

2 调试程序运行

执行如下命令,查看虚拟机的 IP 地址。

Host# ifconfi

wKgZomW4TQuAR0cRAACmYvPJpRE597.png

在评估板文件系统 demo 文件所在路径下,执行如下命令运行 gdbserver 程序,开启

监听。

备注:192.168.13.11 为虚拟机的 IP 地址;1234 为连接的端口号(自行设置);demo 为

将要进行调试的程序。

Target#

gdbserver 192.168.13.11:1234 demo

wKgZomW4TSOASuDsAAAg_CCa2EU120.png

在虚拟机 demo 文件所在路径下,执行如下命令运行 GDB 调试程序。

Host# aarch64-linux-gnu-gdb demo

wKgZomW4TSmAfxnzAADPLE94amo256.png

执行如下命令,连接评估板。192.168.13.66 为评估板的 IP 地址,请以实际情况为准。

(gdb)

target remote 192.168.13.66:1234

wKgaomW4Ta6ASy4GAABr3cGlMUM859.png

同时,串口调试终端显示连接成功的相关信息。

wKgaomW4Tb2ADvbHAAArVwk99dI086.png

3 程序调试

本章节主要演示 GDB 调试的几个常用命令的使用方法。

3.1 list 命令

用于列出源码,简写:l。

wKgZomW4TcSAOE-XAAA4wu97lNI728.png

3.2 break 命令

用于设置断点,简写:b。

分别在 main 函数和第 11 行设置断点。

wKgaomW4TcyAc7zXAAAgzf-Bx9w262.png

3.3 info breakpoints 命令

用于显示断点的状态,简写:info b。

wKgZomW4TeWACC-GAAAptHD3tnc524.png

3.4 continue 命令

用于恢复程序执行,简写:c。此命令使 GDB 恢复程序的执行,直至断点触发或程序

结束。

wKgaomW4TeuALu-8AADX6RYM6l8991.png

以上调试过程在第二个断点中,每输入一次 c 命令,将会依次打印 arr[]数组的元素值,

然后程序执行结束。同时,串口调试终端打印相关信息。

wKgaomW4Tg6ANg34AAA7uIWUYlI800.png

3.5 print 命令

用于打印变量或者变量地址,简写:p。

设置断点后,可依次打印当前变量 i 的值。

wKgaomW4TheAdCJ2AAD-jcIPRQ4894.png

以上调试过程在每处断点中,使用 print 命令打印变量 i 的值。同时,串口调试终端

打印相关信息。

wKgaomW4TiuAZ_MpAAA6VmnytD0335.png

3.6 quit 命令

退出 GDB 模式,简写:q。当程序调试完成后,使用 quit 命令退出 GDB 调试。

wKgZomW4TjGAApr8AAAetKL0gIU718.png



审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • gdb
    gdb
    +关注

    关注

    0

    文章

    60

    浏览量

    13162
  • 程序调试
    +关注

    关注

    6

    文章

    14

    浏览量

    9749
收藏 人收藏

    评论

    相关推荐

    使用GDB调试Linux应用程序

    本篇讲解使用GDB调试Linux应用程序,以下以 `hellowld.c` 为例介绍 GDB调试入门。
    发表于 06-27 15:48 338次阅读

    RK3568-GDB程序调试方法说明

    RK3568-GDB程序调试方法说明
    的头像 发表于 01-19 16:16 923次阅读
    RK3568-<b class='flag-5'>GDB</b><b class='flag-5'>程序</b><b class='flag-5'>调试</b><b class='flag-5'>方法</b><b class='flag-5'>说明</b>

    TLT507-Linux应用开发手册

    TLT507-Linux应用开发手册
    的头像 发表于 01-26 09:34 372次阅读
    <b class='flag-5'>TLT507</b>-Linux应用开发手册

    TLT507-Qt工程编译说明

    TLT507-Qt工程编译说明
    的头像 发表于 01-26 09:37 459次阅读
    <b class='flag-5'>TLT507</b>-Qt工程编译<b class='flag-5'>说明</b>

    TLT507-Linux-RT应用开发案例

    TLT507-Linux-RT应用开发案例
    的头像 发表于 01-26 09:46 361次阅读
    <b class='flag-5'>TLT507</b>-Linux-RT应用开发案例

    TLT507-Docker容器部署方法说明

    TLT507-Docker容器部署方法说明
    的头像 发表于 01-26 09:49 204次阅读
    <b class='flag-5'>TLT507</b>-Docker容器部署<b class='flag-5'>方法</b><b class='flag-5'>说明</b>

    TLT507-Ubuntu系统使用说明

    TLT507-Ubuntu系统使用说明
    的头像 发表于 01-26 09:58 443次阅读
    <b class='flag-5'>TLT507</b>-Ubuntu系统使用<b class='flag-5'>说明</b>

    TLT507-物联网模块开发案例

    TLT507-物联网模块开发案例
    的头像 发表于 01-26 10:26 668次阅读
    <b class='flag-5'>TLT507</b>-物联网模块开发案例

    TLT507-视频开发案例

    TLT507-视频开发案例
    的头像 发表于 01-26 10:50 702次阅读
    <b class='flag-5'>TLT507</b>-视频开发案例

    TLT507- 双屏异显方案演示

    TLT507- 双屏异显方案演示
    的头像 发表于 01-26 11:08 719次阅读
    <b class='flag-5'>TLT507</b>- 双屏异显方案演示

    gdb调试工具指南 (很详细的说明)

    gdb调试工具指南,很详细的说明
    发表于 03-28 09:52 45次下载

    在Linux中如何使用gdb调试C程序

    通俗的讲,GDB 可以让你看到程序在执行过程时的内部流程,并帮你明确问题的所在。我们将在下一节通过一个有效的示例来讨论 GDB 调试器的用法,但在此之前,我们先来探讨一些之后对你有帮助
    发表于 04-28 15:37 1563次阅读

    在板子中调试GDB方法

    在板子中调试 上面的方法是直接在 ubuntu 调试源代码,只能查看源代码的错误,如果你想要你的应用程序在板子中运行,想打出它在板子上运行的 bug,就要采用下面的
    的头像 发表于 07-27 16:37 762次阅读
    在板子中<b class='flag-5'>调试</b><b class='flag-5'>GDB</b>的<b class='flag-5'>方法</b>

    TLT507-Android应用开发手册

    TLT507-Android应用开发手册
    的头像 发表于 01-26 15:32 262次阅读
    <b class='flag-5'>TLT507</b>-Android应用开发手册

    如何使用linux下gdb调试python程序

    如何使用linux下gdb调试python程序  在Linux下,可以使用GDB(GNU调试器)来调试
    的头像 发表于 01-31 10:41 474次阅读