在学习嵌入式的过程中,我们接触最多的就是Linux环境,而在嵌入式 linux 领域我们最常用的代码调试工具应该就是GDB了,通过简单的学习GDB调试工具,发通过使用它可以有效的解决一些问题。

gdb 工具是 GNU 项目调试器,基于命令行。和其他的调试器一样,我们可以使用 gdb 来运行程序、单步执行、跳入/跳出函数、设置断点、查看变量等等操作,它是linux操作系统下强大的程序调试工具。

在c语言学习阶段,gdb调试主要用来解决段错误的问题。

而在C语言编程中,会引起段错误的原因有以下几种,是初学者非常容易犯的错误,因此掌握这一种调试工具可以有效提高我们的工作效率。

引起段错误的主要原因:数组越界、操作空指针或者野指针、修改常量区的内容

gdb的基本使用方法:

第一步:编译时,添加-g选项,使得可以生成一个带有调试环境的可执行文件

第二步:利用gdb调试文件:eg: gdb  a.out(也可以-o指定一个可执行文件的名字)

第三步:设置断点: b  行标/函数名   :eg:  b  main

第四步:运行:eg: r

第五步:采用单步调试 n/s

n:行调试,但是遇到子函数时,会执行子函数,并将子函数的执行结果进行一次性显示出来,意味着会执行子函数但不进入子函数内部:

s:行调试,但是遇到子函数时,会立即进入子函数内部,从子函数第一句话开始进行单步调试,直到子函数被执行完毕,退出子函数,紧接着继续执行剩下的语句块。

第六步:当系统显示接收到一个信号“Segmentation  Fault”,就认为扎到引起段错误的行

第七步:结束调试,按下:q退出

以上步骤便是c语言学习阶段最经常用到的gdb调试命令及简单步骤。

嵌入式开发基于linux系统的c语言程序开发调试工具相关推荐

  1. 基于Linux系统的C语言多关卡推箱子设计

    基于Linux系统的C语言多关卡推箱子设计 目录 基于Linux系统的C语言多关卡推箱子设计 前言 一.设计方案 二.功能设计 2.1功能简述 2.2流的类型和操作 2.3标准I/O 2.4流的使用 ...

  2. 基于Linux环境中C语言程序----Hello World

    文章目录 基于Linux环境中C语言程序----Hello World 前言 C语言的特点 在Linux环境中打印Hello World 基于Linux环境中C语言程序----Hello World ...

  3. Linux系统上C语言程序编写与调试

    目录 1.可执行文件(程序) 2.程序的编译链接过程 2.1.预处理阶段 2.2.编译阶段 2.3.汇编阶段 2.4.链接阶段 3.在gcc编译器上进行程序编译运行实操 3.1.gcc安装 3.2.预 ...

  4. linux系统下c语言程序需要改动的地方,如何在Linux系统环境下进行C语言开发

    描述 对于程序设计员来说,makefile是我们绕不过去的一个坎.可能对于习惯Visual C++的用户来说,是否会编写makefile无所谓.毕竟工具本身已经帮我们做好了全部的编译流程.但是在Lin ...

  5. c语言程序开发案例宝典下载,《C语言程序开发范例宝典(附光盘)》

    1.1 进 制 转 换 实例001 十进制转换为十六进制 实例002 十进制转换为二进制 实例003 n进制转换为十进制 实例004 IP地址形式输出 1.2 条 件 判 断 实例005 a2+b2 ...

  6. 基于全志A33开发板linux系统移植学习记录(Boot0)

    基于全志A33开发板linux系统移植学习记录 第一章 Boot0基于ARMGCC的编译与修改 文章目录 基于全志A33开发板linux系统移植学习记录 前言 一.全志A33简介以及上电引导流程 二. ...

  7. 限速linux c语言,基于Linux系统的流量控制程序的C语言代码

    基于Linux系统的流量控制程序的C语言代码 基于Linux系统的流量控制程序的C语言代码 mytbf.h头文件 ifndef MYTBF_H_ #define MYTBF_H_ typedef vo ...

  8. linux usb显卡驱动,基于Linux系统的USB显卡多用户平台开发

    摘要: 自上个世纪九十年代以来,Linux系统得到了快速的发展,由于Linux继承了UNIX的以网络为核心的设计思想,采用模块化的设计结构,使得Linux取得了广泛的应用.于此同时,计算机硬件也取得了 ...

  9. linux电机驱动程序,基于Linux系统的HHARM9电机驱动程序设计

    电子科学知识.电机,arm 第24卷 第4期 2005年12月南昌工程学院学报JournalofNanchangInstituteofTechnologyVol.24No.4Dec.2005文章编号: ...

最新文章

  1. 【转】C++中this指针的用法详解
  2. 【PC工具】更新常用USB转串口芯片MAC驱动,CH340G驱动安装有可能遇到的问题及解决办法...
  3. 《Java 7程序设计入门经典》一3.7 for循环
  4. Linux 临时表空间满了,Temporary表空间100%解决方案
  5. DateFormat(炸窝)
  6. Lyft Level 5 Challenge 2018 - Elimination Round翻车记
  7. 最近项目中遇到的一个算法挑战
  8. delphi生产者消费者模式代码_并发设计模式:生产者-消费者模式,并发提高效率...
  9. android skype 无法用蓝牙耳机,Skype发布更新 增加蓝牙耳机稳定性
  10. easyui datebox 设置只读
  11. 华为ebgp_华为路由器BGP邻居详解
  12. anaconda下载过慢修改源配置
  13. pandas抽样函数sample
  14. 网曝悼念牌汤圆吃出创可贴(图)
  15. 基督-神[上帝]的道,真理的本真归回
  16. 微信公众号网页授权思路解析及具体代码
  17. 《Redis设计与实现 黄建宏 著》阅读笔记目录(持续更新)
  18. C语言的system函数
  19. 955.WLB 不加班公司名单新增 5 家公司!2021 最新版!
  20. 图形世界分裂的两派——理清Direct3D和OpenGL的脉络

热门文章

  1. pta 循环单链表的删除(java)
  2. 一文了解THD布局要求
  3. 基于python的景点天气及评价设计
  4. SimpleITK、pydicom的安装使用——踏上python生物医学图像处理的初学之路
  5. robot_state_publisher不能正常启动的解决之法
  6. 电工学复习 【1】--电路的基本概念和基本定律
  7. 什么是B2B电子商务模式
  8. (数学建模)2013年国赛B题-碎纸片复原python代码
  9. 史上最强蝴蝶效应 - 都是道士惹的祸
  10. Excel1——复制txt数据到Excel单元格并批量截取获得所需数据