Linux工具之gdb

版权声明: https://blog.csdn.net/qccz123456/article/details/81711375

(1)打开需调试的文件
  gdb test
    或
  gdb
  file test
(2)运行相关
  run( r) [输入参数]  #开始运行程序,与 set args xxxx 同理
  next(n)  #单步运行程序(不进入子函数)
  step(s)  #单步运行程序(进入子函数)
  finish  #运行程序,直到当前函数结束
  continue( c)  #继续运行程序,直到断点/结束
  until  #运行程序直到退出循环体
  until 行号  #运行至某行,不仅仅用来跳出循环
  call 函数(参数)  #调用程序中可见的函数,并传递“参数”,如:call gdb_test(55)
  quit(q)  #退出gdb
(3)查看程序及断点调试
  list(l) [行号/函数名]  #查看程序
  break(b) 函数名/行号/文件名:行号/行号if条件  #打断点
  frame(f) 栈帧号  #选择栈帧
  print( p) 变量名/函数名(参数)  #查看指定变量值
  display 变量名  #单步调试中,每次单步指令后输出被设置的表达式和值
  watch 变量名  #对指定变量进行监控,值发生改变就显示
  info break(b)  #查看所有断点
  delete 断点号n  #删除第n个断点
  disable 断点号n  #暂停第n个断点
  enable 断点号n  #开启第n个断点
  clear 行号n  #清除第n行的断点
  delete breakpoints  #清除所有断点
  whatis  #查询变量或函数
  info(i) 或 locals  #查看当前栈帧局部变量的值
  info function  #查询函数
  info locals  #显示当前堆栈页的所有变量
(4)查询运行信息
  backtrace(bt)  #显示当前调用堆栈;
  up/down  #改变堆栈显示的深度
  set args 参数  #指定运行时的参数
  show args  #查看设置好的参数
  info program  #来查看程序的是否在运行,进程号,被暂停的原因
  set var 变量=XX  #对调试中的变量进行赋值
(5)分割窗口layout——用于分割窗口,可以一边查看代码,一边测试
  layout src  #显示源代码窗口
  layout asm  #显示反汇编窗口
  layout regs  #显示源代码/反汇编和CPU寄存器窗口
  layout split  #显示源代码和反汇编窗口
  Ctrl + L  #刷新窗

(6)linux调试Segmentation fault (core dumped)
http://www.cnblogs.com/hazir/p/linxu_core_dump.html

###cgdb:gdb的界面增强版
这里写图片描述

猜你喜欢

转载自blog.csdn.net/qccz123456/article/details/81711375
今日推荐