什么是gdb调试

GDB(全称:GNU Debugger)是GNU工程为GNU操作系统开发的调试器。它可以用于调试C、C++、Objective-C、Pascal、Ada等语言编写的程序。

GDB的使用条件

程序要用GDB调试,需要添加调试信息。

gcc *.c -o app -g[-g用于添加调试信息]

1. 启动gdb

gdb + 【需要调试的程序】
start – 只执行一步
n – next
s – step(单步) – 可以进入到函数体内部
c - continue – 直接停在断点的位置

2. 查看代码:

l – list(默认10行)
l 10(函数名)
l filename:行号(函数名)

3. 设置断点:

设置当前文件断点:
b – break
b 10(函数名)
b fileName:行号(函数名)
设置条件断点:
b 10 if value==19
删除断点:
delete – del - d
d 断点的编号

4. 查看设置的断点

获取编号: info – i
info b
num:几号断点
type:什么了类型的断点
enb:当前断点状态

5. 开始 执行gdb调试

执行一步操作: s – step(单步) – 可以进入到函数体内部
继续执行:n – next
执行多步, 直接停在断点处:c - continue – 直接停在断点的位置

6. 单步调试

进入函数体内部: s
从函数体内部跳出: finish(想要停止执行,应该先去除断点)
不进入函数体内部:n
退出当前循环: u

7. 查看变量的值:

p – print

8. 查看变量的类型:

ptype 变量名

9. 设置变量的值:

set var 变量名 = 赋值

10. 设置追踪变量

display
取消追踪变量
undisplay 编号
获取编号: info display

11. 退出gdb调试

quit

12.常用gdb指令

file             装入想要调试的可执行文件
kill                终止正在进行的调试程序
list/l              列出产生执行文件的源代码的一部分
next/n              执行一行源代码但不进入函数内部
step/s              执行一行源代码并可以进入函数内部
run/r               执行当前被调试的程序
c                   继续运行程序
quit/q              终止gdb
watch               使你能监视一个变量的值而不管它何时被改变
backtrack           栈跟踪,查看代码被谁调用
print/p             查看变量的值
make                不用退出gdb,就可以重新生成可执行文件
shell               不用退出gdb,就可以使用shell命令
whatis              显示变量或者函数类型
break/b             设置断点
info/i break/b      显示当前断点信息,包含到达断点处的次数
info/i files        显示被调试文件的详细信息
info/i func         显示所有函数名称
info/i local        显示当前的函数的局部变量
info/i prog         显示被调试程序的执行状态
delete/del [n]      删除第n个断点
disable [n]         关闭第n个断点
enable [n]          开启第n个断点
ptype               显示结构定义
set variable        设置变量的值
call name(args)     调用并执行为name,参数为args的函数
Finish              终止当前函数并输出返回值
return value        停止当前函数并返回value给调用者

【linux浅谈017】gbd调试常用指令相关推荐

  1. python数学库的使用方法_浅谈numpy库的常用基本操作方法

    NumPy数组的维数称为秩(rank),一维数组的秩为1,二维数组的秩为2,以此类推.在NumPy中,每一个线性的数组称为是一个轴(axes),秩其实是描述轴的数量.比如说,二维数组相当于是一个一维数 ...

  2. 浅谈实际开发中常用的分布式事物处理

    浅谈实际开发中常用的分布式事物处理 文章目录 前言 一.分布式事物 二.常用方案 1.使用记录表+mq机制 前言 随着微服务的流行,越来越多系统不在是单体结构,根据业务和功能拆分成不同微服务,这就导致 ...

  3. matlab泊松分布随机数和图像_浅谈可靠性理论中的常用概率分布

    浅谈可靠性理论中的常用概率分布 1. 泊松分布 基本原理 泊松分布是最常见的离散概率分布,适合描述单位时间内随机事件发生的概率. (1) 泊松分布概率密度(不可靠度)计算公式 MATLAB概率密度函数 ...

  4. Linux下gdb(插件pwndbg、pead、gef)安装及调试常用指令

    gdb 一.安装指令 如果没安装gdb,先使用以下指令安装gdb sudo apt-get install gdb 先装,因为这个带有 parseheap.以及 heapinfo 等指令,有的场景下更 ...

  5. Linux的基本安装,与常用指令

    Linux目录结构简介: 目录结构 说明 /bin 是Binary的缩写,这个目录存放着最经常使用的命令 /sbin s就是Super User的意思,这里存放的系统管理员使用的系统管理程序 /hom ...

  6. 【Linux】网络系统配置、文件系统常用指令

    Linux操作系统 内容管理 Linux基础操作 查看网络IP和网关 设置静态IP vim /etc/syconfig/network-scripts/ 修改IP后ping问题 更改主机名 远程登录 ...

  7. 浅谈Angular如何自定义创建指令@Directive

    ​知识普及 Angular 指令根据其创建形式分为内置指令和自定义指令,指令按照类型分: 模板指令--组件就是模板指令(只能自定义) 属性型指令 -- 更改元素.组件或其他指令的外观或行为的指令(有内 ...

  8. 浅谈四轴PID调试心得

    以下内容转自阿莫论坛,写得很详细,是调试大四轴的.小四轴调试也可参照着调. PID调试心得 本人不是自动化出身,也没有受过专业训练,都是自己摸索,在这里浅述一下自己的PID参数整定心得.所言之物皆由实 ...

  9. 【Linux操作系统】基础概念和常用指令(一)

    PS:我下面的操作都是基于Linux云服务器和Xshell远程连接来操作的(这里直接跳过安装) 目录 1.操作系统概述(OS)? 2.为什么企业都选择Linux? 3.Linux版本分类 4.Linu ...

  10. linux開啟虛擬機命令,Linux系统入门之虚拟机与常用指令学习

    在学习linux基础的时候,为了避免一个操作删了系统或者库什么的造成不必要的严重影响,我们在虚拟机中进行操作. 那什么是虚拟机呢?百度这么说的:在实体计算机上,通过软件模拟出的一台或者多台虚拟计算机叫 ...

最新文章

  1. 使用git 上传自己代码
  2. node mysql批量写入_如何使用node.js在MySQL中进行批量插入
  3. iOS自定义NavigationBar
  4. 软件测试 homework2
  5. Docker 入门尝鲜
  6. origin tangent插件_如何用origin绘制切线
  7. 9-51单片机ESP8266学习-AT指令(测试TCP服务器--51单片机程序配置8266,C#TCP客户端发信息给单片机控制小灯的亮灭)...
  8. 飞思卡尔芯片k66单片机溢出_飞思卡尔HCS12系列 Flash的加密解密解决方法
  9. 运维 之 常用运维工具
  10. 网络图的绘制方法详细讲解
  11. Minimum supported Gradle version is 6.1.1. Current version is 5.6.4
  12. vander范德蒙德行列式
  13. 全面理解Web3.0时代
  14. 计算机基础知识背诵口诀,字根表口诀怎么快速背-文言文的快速背诵方法4则,附虚词背诵顺口溜...
  15. C++ lock_guard 自动释放锁
  16. 笔记本计算机待机后显示器,笔记本电脑休眠后一直黑屏怎么回事_笔记本休眠后屏幕一直黑屏无法唤醒如何解决-win7之家...
  17. 极光会客厅:大型H5游戏如何登陆微信小游戏及游戏性能优化分享
  18. 基于T5CPU的智能屏产品型号与内核对照表
  19. Review Troller
  20. 单单训练营 第四期 第一课 做自己的CEO

热门文章

  1. 【基础知识①】计算机网络知识
  2. 1148 数字字符出现频率
  3. App推广:ASO策略篇,清榜频发,优化热情不减
  4. Recurrent Feature Reasoning for Image Inpainting解读
  5. 未能找到路径中的某个部分_未能找到路径“..”的一部分
  6. Android文字转语音引擎(TTS)简单比较及下载
  7. win10安装配置elasticsearch7.6.0以及java代码初识
  8. visio画图复制粘贴到word_VISO复制到WORD中全是空白框
  9. 关于火狐浏览器不能看中国大学mooc上视频的解决办法
  10. Centos7下cobbler(补鞋匠)安装部署全过程