嵌入式(十三)——gdb调试
文章目录
- 前言
- gdb调试
- 段错误
前言
对于C语言新手建议用printf打印大法
对于gdb本章节只做简单介绍
gdb是GNU发布的一款强大的程序调试工具。
GDB主要完成下面三个方面的功能:
- 启动被调试程序
- 让被调试的程序在制定的位置停止
- 当程序被停住时,可以检查程序状态-变量值
学习GDB的三步走(可以自己去看十篇博客(GDB详解)):
- 学会使用GDB(基础命令)
- 掌握GDB的场景的使用技巧(多任务、网络程序、内存管理、core、汇编程序)
- 尝试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调试相关推荐
- 嵌入式学习DAY10 --- 封装子函数,GDB调试,gcc编译流程
嵌入式入门学习笔记,遇到的问题以及心得体会! DAY10 概述: 今日内容不多,C语言大致运用内容完结,后续还有未讲解到的会再讲. 1.封装子函数 2.GDB调试 3.gcc编译流程 笔记: 1,ma ...
- 通过vscode进行嵌入式linux arm开发板gdb调试
下载和安装vscode, 下载 vscode for windows 地址: Visual Studio Code - Code Editing. Redefined 安装 "remote ...
- 【嵌入式开发】C语言 命令行参数 函数指针 gdb调试
. 作者 : 万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/21551397 | http://www.hanshul ...
- Linux(Ubuntu)下嵌入式gdb调试环境
系统原理课实验要做CMU的Bomblab实验,然而bombg文件在arm架构,因此要配置一个交叉编译/调试环境,曾测试在Ubuntu 15.04下直接安装arm-none-eabi-gdb,然而调试时 ...
- 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 ...
- 【转】gdb 调试段错误
[转]gdb 调试段错误 转自:blog.csdn.net/yangzhu1982/article/details/6318600 开发嵌入式Linux的时候经常会遇到segmentation fau ...
- 实战能力|一文看懂GDB调试上层实现
一.前言 这篇文章来聊聊大名鼎鼎的GDB,它的豪门背景咱就不提了,和它的兄弟GCC一样是含着金钥匙出生的,在GNU的家族中的地位不可撼动.相信每位嵌入式开发工程师都使用过gdb来调试程序,如果你说没有 ...
- 嵌入式linux的调试技术
本章介绍了嵌入式linux的调试技术,例如,设置断点.逐步跟踪代码.输出调试信息等. Printk函数用于打印内核调试信息,运行在内核空间,printf函数运行在用户空间.Printk文件是一个简单的 ...
- 用 GDB 调试Linux程序及有用技巧
用 GDB 调试Linux程序及有用技巧(转) armlinux 2008-06-19 10:48 阅读91 评论0 字号: 大大 中中 小小 GNU的调试器称为gdb,该程序是一个交 ...
最新文章
- python方法调用名字不一样_python中调用父类同名方法
- 用surfaceView实现高性能动画
- Bentley MicroStation V8i安装教程
- 在一颗度为4的树T中,若有20个度为4的结点,10个度为3的结点,1个度为2的结点,10个度为1的结点,则树T的叶结点个数是( )
- Java分页查询工具类
- 机器学习代码实战——SVM(支持向量机)(使用不同核函数)
- Atitit 搜索蓝牙设备 powershell的实现 java noede.js python 先用脚本语言python nodejs,不好实现。。Java 也不好实现。。 Netcore可以,
- 《量子保密通信技术白皮书》
- 一款基于易语言的搜题软件
- 2021年T电梯修理免费试题及T电梯修理试题及解析
- 9、(九)外汇交易技术术语表
- 获取开源医学文献图片(PubMed)制成数据集
- MVC与MVP的区别
- 11家共享单车可通过支付宝免押骑车,这种省钱的方法你get了吗?
- HTML的mous事件
- 向量点乘与差乘的区别,以及python下np.dot函数
- weka 执行结果MySQL_WEKA数据解析实验.doc
- 阿里云人脸识别C#调用示例参考
- 怎样用计算机命令修复软件,WINDOWS系统损坏无需重装,利用命令一键轻松修复...
- 145 - Table ' is marked as crashed and should be repai