文章目录

  • 前言
  • gdb调试
  • 段错误

前言

对于C语言新手建议用printf打印大法
对于gdb本章节只做简单介绍

gdb是GNU发布的一款强大的程序调试工具。
GDB主要完成下面三个方面的功能:

  1. 启动被调试程序
  2. 让被调试的程序在制定的位置停止
  3. 当程序被停住时,可以检查程序状态-变量值

学习GDB的三步走(可以自己去看十篇博客(GDB详解)):

  1. 学会使用GDB(基础命令)
  2. 掌握GDB的场景的使用技巧(多任务、网络程序、内存管理、core、汇编程序)
  3. 尝试gdb(实现一个调试器:应用程序)
    本章节只学习第一步,第三步的推荐网址:GDB 实现原理介绍

gdb调试

gcc -g gdb_demo.c -o gdb_demo(需要加上-g)
gdb gdb_demo (gdb + 可执行文件)

  • run:在调试器中运行程序
  • list:查看程序源码(只能一遍)(–tui)
  • break + 行号:设置断点
  • break + 行号 + if条件:设置断点
  • break + 函数名:设置断点(到调用该函数时停止)
  • info break:查看断点信息
  • delete + 断点编号(1、2):删除断点
  • enable/disable:使能断点
  • print + /x + 变量名:
  • quit:退出
  • next:单步执行,不进入子函数
  • step:单步执行,进入子函数
  • continue:跳过此断点,到下个断点停止
  • finish:继续执行,在函数内部时,执行到函数结束
  • call + 函数名:调用函数(call func(6))
  • print + 变量=值:设置变量的值
  • clear:清除所有断点
  • ptype + 变量:查看变量的类型

gdb gdb_demo --tui(图示)
gdb + 可执行文件 + --tui:启动图形化调试窗口
layout asm(显示汇编)
layout src (切换到源码)
layout split(同时显示汇编和源码)
可以直接简写成首字母(如n(next)、d(delete)、r(run))

段错误

看懂

#include <stdio.h>int main(int argc,char *argv[])
{char *ptr = "hello world";ptr++;(*ptr) = 'E';printf("ptr = %s\n",ptr);return 0;
}

嵌入式(十三)——gdb调试相关推荐

  1. 嵌入式学习DAY10 --- 封装子函数,GDB调试,gcc编译流程

    嵌入式入门学习笔记,遇到的问题以及心得体会! DAY10 概述: 今日内容不多,C语言大致运用内容完结,后续还有未讲解到的会再讲. 1.封装子函数 2.GDB调试 3.gcc编译流程 笔记: 1,ma ...

  2. 通过vscode进行嵌入式linux arm开发板gdb调试

    下载和安装vscode, 下载 vscode for windows 地址:  Visual Studio Code - Code Editing. Redefined 安装 "remote ...

  3. 【嵌入式开发】C语言 命令行参数 函数指针 gdb调试

    . 作者 : 万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/21551397 | http://www.hanshul ...

  4. Linux(Ubuntu)下嵌入式gdb调试环境

    系统原理课实验要做CMU的Bomblab实验,然而bombg文件在arm架构,因此要配置一个交叉编译/调试环境,曾测试在Ubuntu 15.04下直接安装arm-none-eabi-gdb,然而调试时 ...

  5. Windows下基于嵌入式Eclipse + GDB + JLink 对JZ2440/S3C2440/mini2440 进行裸机程序在SDRAM上的调试

    1  工具准备 1.1 下载安装Eclipse IDE for Embedded C/C++ Developers的最新的2021-09版本,下载链接为: https://ftp.jaist.ac.j ...

  6. 【转】gdb 调试段错误

    [转]gdb 调试段错误 转自:blog.csdn.net/yangzhu1982/article/details/6318600 开发嵌入式Linux的时候经常会遇到segmentation fau ...

  7. 实战能力|一文看懂GDB调试上层实现

    一.前言 这篇文章来聊聊大名鼎鼎的GDB,它的豪门背景咱就不提了,和它的兄弟GCC一样是含着金钥匙出生的,在GNU的家族中的地位不可撼动.相信每位嵌入式开发工程师都使用过gdb来调试程序,如果你说没有 ...

  8. 嵌入式linux的调试技术

    本章介绍了嵌入式linux的调试技术,例如,设置断点.逐步跟踪代码.输出调试信息等. Printk函数用于打印内核调试信息,运行在内核空间,printf函数运行在用户空间.Printk文件是一个简单的 ...

  9. 用 GDB 调试Linux程序及有用技巧

    用 GDB 调试Linux程序及有用技巧(转) armlinux   2008-06-19 10:48   阅读91   评论0 字号: 大大  中中  小小 GNU的调试器称为gdb,该程序是一个交 ...

最新文章

  1. python方法调用名字不一样_python中调用父类同名方法
  2. 用surfaceView实现高性能动画
  3. Bentley MicroStation V8i安装教程
  4. 在一颗度为4的树T中,若有20个度为4的结点,10个度为3的结点,1个度为2的结点,10个度为1的结点,则树T的叶结点个数是( )
  5. Java分页查询工具类
  6. 机器学习代码实战——SVM(支持向量机)(使用不同核函数)
  7. Atitit 搜索蓝牙设备 powershell的实现 java noede.js python 先用脚本语言python nodejs,不好实现。。Java 也不好实现。。 Netcore可以,
  8. 《量子保密通信技术白皮书》
  9. 一款基于易语言的搜题软件
  10. 2021年T电梯修理免费试题及T电梯修理试题及解析
  11. 9、(九)外汇交易技术术语表
  12. 获取开源医学文献图片(PubMed)制成数据集
  13. MVC与MVP的区别
  14. 11家共享单车可通过支付宝免押骑车,这种省钱的方法你get了吗?
  15. HTML的mous事件
  16. 向量点乘与差乘的区别,以及python下np.dot函数
  17. weka 执行结果MySQL_WEKA数据解析实验.doc
  18. 阿里云人脸识别C#调用示例参考
  19. 怎样用计算机命令修复软件,WINDOWS系统损坏无需重装,利用命令一键轻松修复...
  20. 145 - Table ' is marked as crashed and should be repai

热门文章

  1. ​你需要知道的5个Python技巧
  2. 为php设置系统变量、环境变量
  3. 科技化浪潮下,金融牌照还有没有价值?
  4. 电商直播的应用场景有哪些?
  5. 让python pip 使用国内镜像
  6. 向设计师推荐30款很酷的复古字体
  7. 【JAVA】错误: 找不到或无法加载主类 HelloWorld
  8. 你为什么离开大都市选择回老家?
  9. Python TensorFlow循环神经网络RNN-LSTM神经网络预测股票市场价格时间序列和MSE评估准确性...
  10. linux 中 top 命令参数详解