当前位置: 首页 > news >正文

linux之GDB常用命令汇总

查看gdb的版本号 (1)rpm -q gdb 会显示是否安装gdb及版本号 (2)gdb --version也可以

 

breakpointb main; b 20;设置断点
breakpoint ifbreak 函数名、编号 if xxxx在xxx的情况下设置的断点才生效 (xxx 例如:变量= 3)
cdcd /home/yongchao/改变当前工作目录
clear光标在正要执行的break点的行,然后打clear删除停止处的断点 (删除当前光标所在行的断点: 光标所在行->当前要执行的行)
info binfo b查看所有的断点
continuecontinue从断点开始继续执行
enableenable breakpoint 编号使得某个断点生效
disabledisable breakpoint 编号使得某个断点失效
deletedelete 断点号删除某个断点
deletedelete删除所有断点
displaydisplay 变量、表达式程序停止时显示变量或者表达式的值(一直显示,直到取消显示)
info displayinfo display显示display的变量编号
undisplayundisplay 编号取消某个编号一直显示
steps跳入函数
untiluntil直接执行到函数最后 或者跳出一个循环
finishfinish如果已经进入了某个函数,想要退出该函数返回到它的调用函数中
shellshell  linux命令使你能不离开 gdb 就执行 UNIX shell 命令.
print print 变量 打印变量
printprint 变量 = 2给变量赋值2
print print find_entry(1,0)对程序中函数的调用
printprint array[0]@5 (不能是array@5)查看数组的5个元素
callcall find_entry(1,10)调用和执行函数
pwdpwd显示当前工作目录
ptypeptyoe 变量显示类、结构体的结构
whatiswhatis  变量/函数类型显示变量/函数类型的 声明
watchwatch 变量观察变量的值,当有变化的时候停止

在使用watch时步骤如下

1. 使用break在要观察的变量所在处设置断电;

2. 使用run执行,直到断点;

3. 使用watch设置观察点;

4. 使用continue观察设置的观察点是否有变化。

watch counter>15  当counter>15的时候程序终止
delete watch编号delete watch编号删除watch点
makemake不退出gdb就可以重新产生可执行文件
xx /3   内存地址需要显示的内存单元的个数,也就是说从当前地址向后显示几个内存单元的内容,一个内存单元的大小由后面的u定义
x /f    内存地址f 表示显示的格式 :

x 按十六进制格式显示变量。

d 按十进制格式显示变量。

 u 按十进制格式显示无符号整型。

 o 按八进制格式显示变量。

 t 按二进制格式显示变量。

 a 按十六进制格式显示变量。

 i 指令地址格式

 c 按字符格式显示变量。

 f 按浮点数格式显示变量。

x /u   内存地址

u表示一个地址单元的长度

    b表示单字节,

    h表示双字节,

    w表示四字节,

    g表示八字节

x /3dw   内存地址打印3个四字节,安装10进制格式打印
wherewhere使用 where 命令查看程序出错的地方

gdb a.out core

where

查看导致崩溃的原因

l (L小写)  l miscfactory::MiscReaderTestSuit::SetUpTestCase 定位某个类的某个函数   miscfactory是命名空间  MiscReaderTestSuit是类名  SetUpTestCase是类的成员函数名
 bt

 gdb ./xxx core-xxx

  bt

 查看错误堆栈

 

   
   
   
   
   
   
   
   
   
   
   
   
   
   

转载于:https://www.cnblogs.com/silentNight/p/5467134.html

相关文章:

  • uva1368DNA consensus string统计
  • static关键字的使用总结
  • 设计模式学习-原型模式
  • Centos 基础开发环境搭建之Maven私服nexus
  • HDU 2098 分拆素数和
  • 设计模式——9.装饰模式
  • unable to start the virtual device;Genymotion启动安卓模拟器出错
  • MapReduce编程job概念原理
  • 转载 asp.net的Request.ServerVariables参数说明
  • Extjs 学习总结-代理
  • consul笔记
  • Java设计模式图文详解
  • swift-分支
  • 2016/05/19 thinkphp 3.2.2 文件上传
  • 如何升级CentOS 6.5下的MySQL
  • 【391天】每日项目总结系列128(2018.03.03)
  • 【干货分享】SpringCloud微服务架构分布式组件如何共享session对象
  • 【知识碎片】第三方登录弹窗效果
  • ➹使用webpack配置多页面应用(MPA)
  • AngularJS指令开发(1)——参数详解
  • Angular数据绑定机制
  • CentOS7 安装JDK
  • CODING 缺陷管理功能正式开始公测
  • create-react-app做的留言板
  • django开发-定时任务的使用
  • golang中接口赋值与方法集
  • JavaScript工作原理(五):深入了解WebSockets,HTTP/2和SSE,以及如何选择
  • k个最大的数及变种小结
  • SpringCloud集成分布式事务LCN (一)
  • vue-cli3搭建项目
  • 基于Dubbo+ZooKeeper的分布式服务的实现
  • 计算机在识别图像时“看到”了什么?
  • 十年未变!安全,谁之责?(下)
  • 实习面试笔记
  • 通过几道题目学习二叉搜索树
  • 微信小程序设置上一页数据
  • 小而合理的前端理论:rscss和rsjs
  • 一道面试题引发的“血案”
  • 一起来学SpringBoot | 第三篇:SpringBoot日志配置
  • 资深实践篇 | 基于Kubernetes 1.61的Kubernetes Scheduler 调度详解 ...
  • # Pytorch 中可以直接调用的Loss Functions总结:
  • #QT(TCP网络编程-服务端)
  • #我与Java虚拟机的故事#连载14:挑战高薪面试必看
  • (2)STL算法之元素计数
  • (delphi11最新学习资料) Object Pascal 学习笔记---第5章第5节(delphi中的指针)
  • (echarts)echarts使用时重新加载数据之前的数据存留在图上的问题
  • (附源码)springboot家庭财务分析系统 毕业设计641323
  • (附源码)计算机毕业设计SSM教师教学质量评价系统
  • (接口自动化)Python3操作MySQL数据库
  • (转)C语言家族扩展收藏 (转)C语言家族扩展
  • .Net 代码性能 - (1)
  • .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。
  • .NetCore项目nginx发布
  • ::前边啥也没有
  • @NoArgsConstructor和@AllArgsConstructor,@Builder