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

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

3天内不再提示

linux编程GDB调试功能

汽车玩家 来源:Hu先生Linux后台开发 作者:Hu先生Linux后台开发 2020-05-05 23:49 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

GDB是一套字符界面的程序集,可以用它在linux上调试C和C++程序,它提供了以下的功能:

1 在程序中设置断点,当程序运行到断点处暂停

2 显示变量的值,可以打印或者监视某个变量,将某个变量的值显示出来

3 单步执行

4 运行时修改变量的值

5 跟踪路径

6 线程切换

等等

下面以以下程序为例

linux编程GDB调试功能

linux编程GDB调试功能

当我们要使用GDB进行程序的调试时,在用GCC编译时需要加上-g,如下:

GDB之所以能够进行程序的调试也是在于进行编译时的-g选项,当设置了这个选项的时候,GCC会向程序中塞入一下信息,作为GDB调试时的铺垫

,然后GDB才能够利用这些铺垫和信息与程序交互。

有两种方式可以进入GDB,一种就是直接在命令行上输入gdb,然后再在gdb中用file命令加载要调试的程序:

linux编程GDB调试功能

另一种就是,直接在命令行上使用:gdb 程序名

linux编程GDB调试功能

这两种方法都是要在GDB中加载已经做了铺垫的将被调试的程序。

进行GDB并且加载了程序后,我们就可以进行一系列的调试操作了:

1 用 "set args 参数值1 参数值2...."来设置输入参数

2用“list 开始的行号"来打印内容

linux编程GDB调试功能

list 还可以选取区间来打印代码:

linux编程GDB调试功能

3.用 ”b 位置"设置断点

4.用 “run 参数”来运行程序

linux编程GDB调试功能

5.用"display 变量名“来显示变量

6.用”c"来继续运行程序

linux编程GDB调试功能

7.用set命令来改变变量的值

8用q命令来退出GDB

linux编程GDB调试功能

9 用p命令来打印变量的值

10 设置条件断点

11 用delete删除断点

linux编程GDB调试功能

12 用info break 来显示断点信息

linux编程GDB调试功能

13.用bt来显示函数调用路径

linux编程GDB调试功能

14用whatis或者ptype来显示变量的类型

linux编程GDB调试功能

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

    关注

    88

    文章

    11628

    浏览量

    217934
  • gdb
    gdb
    +关注

    关注

    0

    文章

    61

    浏览量

    13815
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    如何调试编程CW32F030C8T7?支持哪些调试工具和编程语言?

    了解如何调试编程CW32F030C8T7是开发过程中的重要环节。它支持哪些调试工具(如JTAG、串口调试等)和编程语言(如C、C++等)?
    发表于 12-05 06:48

    ElfBoard技术贴|如何在【RK3588】ELF 2开发板进行GDB调试

    GDB(GNU Project Debugger)是在Linux环境下功能全面的调试工具。它提供了一系列强大的调试
    的头像 发表于 11-11 13:47 4913次阅读
    ElfBoard技术贴|如何在【RK3588】ELF 2开发板进行<b class='flag-5'>GDB</b><b class='flag-5'>调试</b>

    蜂鸟的GDB调试时无法在断点处停止是什么原因?

    各位大佬们,我们使用GDB调试程序的时候,在main函数打上断点,然后在gdb中continue,程序并没有在main函数入口处停下?请问大佬知道原因吗?谢谢~
    发表于 11-07 06:15

    RV-STAR无法连接到GDB server的解决办法

    demo跑一跑,现在卡在了“下载程序到开发板”这一步,connect to gdb server失败,使用的是板载调试器。请问这是什么情况? 具体信息如下: 1. 我已经安装
    发表于 11-07 06:15

    ‌STMicroelectronics AEK-MCU-SPC5LNK 编程调试器技术解析

    STMicroelectronics AEK-MCU-SPC5LNK加密狗开发用作SPC58汽车微控制器的调试器/编程器加密狗。AEK-MCU-SPC5LNK结合了无源USB转JTAG调试器和
    的头像 发表于 10-21 11:51 254次阅读
    ‌STMicroelectronics AEK-MCU-SPC5LNK <b class='flag-5'>编程</b><b class='flag-5'>调试</b>器技术解析

    MPLAB® PICkit™5 内电路调试器技术解析与应用指南

    )进行快速原型设计和便携式生产就绪编程。该套件与MPLAB X集成开发环境 (IDE) 结合使用,为调试编程提供功能强大、简单易用的图形用户界面 (GUI)。MPLAB PICkit
    的头像 发表于 10-11 10:09 595次阅读
    MPLAB® PICkit™5 内电路<b class='flag-5'>调试</b>器技术解析与应用指南

    ‌MPLAB® PICkit™ Basic调试器技术解析与应用指南

    Microchip Technology MPLAB^®^ PICkit™ Basic调试器是一套经济划算的调试解决方案,适用于不需要高压编程或高级调试
    的头像 发表于 09-29 13:44 507次阅读
    ‌MPLAB® PICkit™ Basic<b class='flag-5'>调试</b>器技术解析与应用指南

    信捷XS STUDIO编程软件V2.3.2版本的全新功能

    XS Studio(V2.3.2)编程软件,是面向XS系列的编程组态软件,集成了PLC编程、可视化HMI、安全PLC、控制器实时核、现场总线及运动控制功能,提供了一套完整的包括配置、
    的头像 发表于 09-20 14:19 1493次阅读
    信捷XS STUDIO<b class='flag-5'>编程</b>软件V2.3.2版本的全新<b class='flag-5'>功能</b>

    【干货分享】RT-Trace国产调试工具 | 技术集结

    专为嵌入式开发者打造的一款高性能、多功能调试工具。它集成了实时系统跟踪、数据监控、GDB远程调试、Flash程序烧录、虚拟终端等多种功能
    的头像 发表于 09-16 08:07 569次阅读
    【干货分享】RT-Trace国产<b class='flag-5'>调试</b>工具 | 技术集结

    国产!全志T113-i 双核Cortex-A7@1.2GHz 工业开发板—GDB程序调试方法说明

    (Linux) GDB工具是GNU项目调试器,基于命令行使用。和其他的调试器一样,可使用GDB工具单步运行程序、单步执行、跳入/跳出函数、设
    的头像 发表于 08-05 15:33 330次阅读
    国产!全志T113-i 双核Cortex-A7@1.2GHz 工业开发板—<b class='flag-5'>GDB</b>程序<b class='flag-5'>调试</b>方法说明

    PSoC 6 BLE PIONEER KIT烧录Bluetooth_LE_Battery_Server的demo进行调试时,无法成功烧录的原因?

    3334 端口监听 gdb 连接 信息:SWD DPIDR 0x6ba02477 信息:kitprog3:获取设备(模式:重置)... [psoc6.cpu.cm0] 由于调试请求而停止,当前模式:线程
    发表于 07-01 07:37

    远程日志errDump调试功能实战教程:案例驱动的故障排查!

    通过真实案例场景,本教程将展示如何利用远程日志errDump调试功能定位系统崩溃、性能瓶颈等问题,从日志捕获到原因分析,手把手带您体验实战中的调试流程。 本文特别分享errDump功能
    的头像 发表于 06-09 16:51 532次阅读
    远程日志errDump<b class='flag-5'>调试</b><b class='flag-5'>功能</b>实战教程:案例驱动的故障排查!

    求助,关于CX3 USB控制中心和调试问题求解

    j-link 制作了新的调试配置,并对设置进行了必要的修改 (EzUsbSuite_UG.pdf)、 但当我点击调试时,却出现了以下错误: 启动命令时出错:gdb --version
    发表于 05-20 06:37

    为什么会报错Could not determine GDB version using command: arm-none-eabi-gdb --version?

    我已经重启电脑了,没用; 重装软件没有,没有; 将ST_link_server卸载重装也没有; 将arm-none-eabi-gdb加入windows 11系统环境变量,也没用; 将软件的GDB
    发表于 03-12 08:08

    Microchip多功能MPLAB® PICkit™ Basic调试器主要特性分析

    Microchip推出多功能MPLAB PICkitBasic调试器        为使更多工程师能够享受更强大的编程调试功能,Micro
    的头像 发表于 03-10 18:42 1245次阅读