Gdb的常用命令

 

GDB(参考文档https://blog.csdn.net/linux7985/article/details/52399439

  1. 小结:常用的gdb命令

 

  backtrace   //显示程序中的当前位置和表示如何到达当前位置的栈跟踪(同义词:where)    

  breakpoint  //在程序中设置一个断点    

  cd   //改变当前工作目录    

  clear   //删除刚才停止处的断点    

  commands   //命中断点时,列出将要执行的命令     (#add相当于vs的when hit)

  continue   //从断点开始继续执行    

  delete   //删除一个断点或监测点;也可与其他命令一起使用    

  display   //程序停止时显示变量和表达时    

  down   //下移栈帧,使得另一个函数成为当前函数    

  frame   //选择下一条continue命令的帧    

  info   //显示与该程序有关的各种信息    

  jump   //在源程序中的另一点开始运行    

  kill   //异常终止在gdb   控制下运行的程序    

  list   //列出相应于正在执行的程序的原文件内容    

  next   //执行下一个源程序行,从而执行其整体中的一个函数    

  print   //显示变量或表达式的值    

  pwd   //显示当前工作目录    

  ptype   //显示一个数据结构(如一个结构或C++类)的内容    

  quit   //退出gdb    

  reverse-search   //在源文件中反向搜索正规表达式    

  run   //执行该程序    

  search   //在源文件中搜索正规表达式    

  set   variable   //给变量赋值    

  signal   //将一个信号发送到正在运行的进程    

  step   //执行下一个源程序行,必要时进入下一个函数    

  undisplay   //display命令的反命令,不要显示表达式    

until   //结束当前循环    

up   //上移栈帧,使另一函数成为当前函数    

watch   //在程序中设置一个监测点(即数据断点)    

whatis   //显示变量或函数类型   

 

调试器(如GDB)的目的是允许你在程序运行时进入到某个程序内部去看看该程序在做什么,或者在该程序崩溃时它在做什么。

 

    GDB主要可以做4大类事(加上一些其他的辅助工作),以帮助用户在程序运行过程中发现bug。

 

      o  启动您的程序,并列出可能会影响它运行的一些信息

      o  使您的程序在特定条件下停止下来

      o  当程序停下来的时候,检查发生了什么

      o  对程序做出相应的调整,这样您就能尝试纠正一个错误并继续发现其它错误

 

    您能使用GDB调试用C、C++、Modula-2写的程序。等GNU Fortran编译器准备好过后,GDB将提供对Fortran的支持

 

    GDB通过在命令行方式下输入gdb来执行。启动过后,GDB会从终端读取命令,直到您输入GDB命令quit使GDB退出。您能通过GDB命令help获取在线帮助。

 

    您能以无参数无选项的形式运行GDB,不过通常的情况是以一到两个参数运行GDB,以待调试的可执行程序名为参数

    gdb 程序名

 

    您能用两个参数来运行GDB,可执行程序名与core文件(译注:不知道怎么翻译好,就不翻译了)。

    gdb 程序名 core

 

    您可以以进程ID作为第二个参数,以调式一个正在运行的进程

    gdb 程序名 1234

    将会把gdb附在进程1234之上(除非您正好有个文件叫1234,gdb总是先查找core文件)

 

  1. 下面是一些最常用的GDB命令:

 

   file [filename]

          装入想要调试的可执行文件

 

   kill [filename]

          终止正在调试的程序

 

   break [file:]function

          在(file文件的)function函数中设置一个断点

 

   clear

          删除一个断点,这个命令需要指定代码行或者函数名作为参数

 

   run [arglist]

          运行您的程序 (如果指定了arglist,则将arglist作为参数运行程序)

 

   bt Backtrace: 显示程序堆栈信息

 

   print expr

          打印表达式的值

 

   continue

          继续运行您的程序 (在停止之后,比如在一个断点之后)

 

   list

          列出产生执行文件的源代码的一部分

 

   next

          单步执行 (在停止之后); 跳过函数调用

 

   nexti

          执行下一行的源代码中的一条汇编指令

 

   set

          设置变量的值。例如:set nval=54 将把54保存到nval变量中

 

   step

          单步执行 (在停止之后); 进入函数调用

 

   stepi

          继续执行程序下一行源代码中的汇编指令。如果是函数调用,这个命令将进入函数的内部,单步执行函数中的汇编代码

 

   watch

          使你能监视一个变量的值而不管它何时被改变

 

   rwatch

          指定一个变量,如果这个变量被读,则暂停程序运行,在调试器中显示信息,并等待下一个调试命令。参考rwatch和watch命令

 

   awatch

          指定一个变量,如果这个变量被读或者被写,则暂停程序运行,在调试器中显示信息,并等待下一个调试命令。参考rwatch和watch命令

 

   Ctrl-C

          在当前位置停止执行正在执行的程序,断点在当前行

 

   disable

          禁止断点功能,这个命令需要禁止的断点在断点列表索引值作为参数

 

   display

          在断点的停止的地方,显示指定的表达式的值。(显示变量)

 

   undisplay

          删除一个display设置的变量显示。这个命令需要将display list中的索引做参数

 

   enable

          允许断点功能,这个命令需要允许的断点在断点列表索引值作为参数

 

   finish

          继续执行,直到当前函数返回

 

   ignore

          忽略某个断点制定的次数。例:ignore 4 23 忽略断点4的23次运行,在第24次的时候中断

 

   info [name]

          查看name信息

 

   load

          动态载入一个可执行文件到调试器

 

   xbreak

          在当前函数的退出的点上设置一个断点

 

   whatis

          显示变量的值和类型

 

   ptype

          显示变量的类型

 

   return

          强制从当前函数返回

 

   txbreak

          在当前函数的退出的点上设置一个临时的断点(只可使用一次)

 

   make

          使你能不退出 gdb 就可以重新产生可执行文件

 

   shell

          使你能不离开 gdb 就执行 UNIX shell 命令

 

   help [name]

          显示GDB命令的信息,或者显示如何使用GDB的总体信息

 

   quit

          退出gdb.

 

 

   要得到所有使用GDB的资料,请参考Using GDB: A Guide to the GNU

   Source-Level  Debugger,  by Richard M. Stallman and Roland

   H. Pesch.  当用info查看的时候,也能看到相同的文章

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值