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

GDB 常用命令 ***

运行:

  (gdb)  r

 

命令行带参:

  (gdb)  r  "参数1"  "参数2"

  (gdb)  set args "参数1"  "参数2"    //set  args  10 20 40

 

查看/设置 运行环境:

  (gdb)  show args     //查看命令行参数

  (gdb)  show paths    //查看运行路径  

  (gdb)  show env     //查看环境变量

  (gdb)  set evn  LINES=25  //设置环境变量  

 

设置断点 break:

  (gdb)  b  function

  (gdb)  b  linenum

  (gdb)  b  + offset

  (gdb)  b  - offset

  (gdb)  b  filename:function

  (gdb)  b  filename:linenum

  (gdb)  b  *address

  (gdb)  b  xxx  if <condition>    //b 18 if i==50

 

设置观察点:

  (gdb)  watch  expr    //表达式expr变化则停止

  (gdb)  rwatch  expr    //表达式expr被读时停止

  (gdb)  awatch  expr    //表达式expr被读写时停止

 

查看断点/观察点 info:

  (gdb)  i

  (gdb)  i  locals    //显示当前函数所有局部变量的值

  (gdb)  i b 3    //查看第三个断点

  (gdb)  i watchpoints

  (gdb)  i watchpoints n

 

设置自动显示:

  (gdb)  display i

  (gdb)  display  $pc    //显示当前内存地址

 

删除自动显示:

  (gdb)  delete display dnum

  (gdb)  disable display dnum

  (gdb)  enable display dnum

 

停止维护点:

  (gdb)  delete

  (gdb)  clear      

  (gdb)  disable

  (gdb)  enable

  例子:

    clear          //清楚所有停止点

    clear  function    //清除该函数内部的所有停止点

    clear  filename:function

    clear  linenum    //清除某行上的停止点

    delete  n

    delete  n1-n2

    disable  n

    enable  n

 

单步调试next/step:

  (gdb)  n    //逐行执行语句,不进入函数体内部

  (gdb)  s    //逐行执行语句,进入函数内部 

 

查看源程序list:

  (gdb)  list  first,last

  (gdb)  list  linenum

 

查看运行数据print:

  print  /<f>  n    //显示变量n的值

  print  /<f>  ::n    //显示全局变量n的值

  print  /<f>  array  //显示数据的值

  print  /<f>  *array@length    //显示动态分配数组的值

  /<f>:为显示格式,其值为:x/d/u/o/t/a/c/f

 

查看变量类型:

  (gdb)  whatis  var        //获取变量的类型

  (gdb)  ptype  var/structname   //获取结构体定义 

  (gdb)  where            //函数的调用关系链

 

查看内存:

  (gdb)  x  addr    //查看内存

  (info)  line  n    //显示第n行的内存地址

 

改变程序执行流程:

  (gdb)  print i=10    //赋值

  (gdb)  print function  //执行一次函数

  (gdb)  set var i=15

  (gdb)  jump  linenum

  (gdb)  jump  address

  (gdb)  call  function    //强制调用函数

 

相关文章:

  • CSDN博客备份2
  • mysql面试题分组并合并列
  • 男人不成熟35个标志
  • 虚机cbt
  • 多线程博文地址 http://www.cnblogs.com/nokiaguy/archive/2008/07/13/1241817.html
  • DotNET企业架构应用实践-系统架构与性能-理论依据及相关技术
  • python里的拆包、引用、递归与匿名函数
  • Android API 中文 (52) —— ZoomButtonsController.OnZoomListener
  • 电子商务的云计算应用是一片蓝海
  • 设计模式 - 总结篇
  • mysql 案例~select引起的性能问题
  • 研究NIO时的柳暗花明
  • 多余空格,转换空格
  • [Oracle][Metadata]如何查找与某一个功能相关的数据字典名
  • 调试利器--VS2010(有图有真相)
  • 【剑指offer】让抽象问题具体化
  • 【许晓笛】 EOS 智能合约案例解析(3)
  • AWS实战 - 利用IAM对S3做访问控制
  • Cumulo 的 ClojureScript 模块已经成型
  • ECMAScript6(0):ES6简明参考手册
  • Flannel解读
  • Koa2 之文件上传下载
  • Lsb图片隐写
  • Magento 1.x 中文订单打印乱码
  • RedisSerializer之JdkSerializationRedisSerializer分析
  • Redis字符串类型内部编码剖析
  • Spring Cloud Alibaba迁移指南(一):一行代码从 Hystrix 迁移到 Sentinel
  • 程序员最讨厌的9句话,你可有补充?
  • 初探 Vue 生命周期和钩子函数
  • 大型网站性能监测、分析与优化常见问题QA
  • 短视频宝贝=慢?阿里巴巴工程师这样秒开短视频
  • 分布式熔断降级平台aegis
  • 免费小说阅读小程序
  • 数据结构java版之冒泡排序及优化
  • 数据库写操作弃用“SELECT ... FOR UPDATE”解决方案
  • 双管齐下,VMware的容器新战略
  • 探索 JS 中的模块化
  • 小而合理的前端理论:rscss和rsjs
  • #vue3 实现前端下载excel文件模板功能
  • (2)STL算法之元素计数
  • (3)STL算法之搜索
  • (bean配置类的注解开发)学习Spring的第十三天
  • (zt)基于Facebook和Flash平台的应用架构解析
  • (删)Java线程同步实现一:synchronzied和wait()/notify()
  • (完整代码)R语言中利用SVM-RFE机器学习算法筛选关键因子
  • (原創) 如何刪除Windows Live Writer留在本機的文章? (Web) (Windows Live Writer)
  • (转)Android中使用ormlite实现持久化(一)--HelloOrmLite
  • ***linux下安装xampp,XAMPP目录结构(阿里云安装xampp)
  • . NET自动找可写目录
  • ./configure,make,make install的作用(转)
  • .Net - 类的介绍
  • .net core 源码_ASP.NET Core之Identity源码学习
  • .net core使用ef 6
  • .NET Framework与.NET Framework SDK有什么不同?
  • .NET MVC、 WebAPI、 WebService【ws】、NVVM、WCF、Remoting