第五节GDB使用

转载 2015年07月08日 17:14:49

1.GDB的常用命令
    调试有很多命令,从简单的文件载入、断点设置,到复杂的内存察看、信号捕捉等。
    1.GDB的启动与退出
      在输入gdb之后进入GDB,这是唯一一条SHELL下输入的命令,其余都是GDB内的命令。
      GDB能够自动识别命令的简写,例如list可以简写为l
      退出GDB使用quit即可(简写为q)
      
    2.载入程序
      载入前先要进行编译
      gcc -g exc.c -o exc
      在GDB启动时载入,有以下两种方法,具体命令为
      gdb exc
      或
      file exc
      
    3.列出源代码
      程序载入后用list列出源码,命令如下
      list
      list默认只列出10行代码,想 往下看继续list
      
      此外,也可以通过指定list命令列出源文件的某一部分。
      
    4.执行程序
      想运行当前被调试的程序,可使用run命令。
      
    5.使用帮助功能
      GDB的命令可以使用help命令来查看。
      在help命令后输入具体的分类名,即可获得该命令的详细清单。
      
2.断点设置与管理

    1.设置断点
    断点使用break命令来设置,break后可以跟行号。
    
    如果在断点处停止,想继续运行,可以使用continue命令,
    
    2.查看断点信息
    info break命令可以查看当前GDB的断点信息。
    
    3.删除指定的断点
    delete命令可以删除指定的断点,命令后面跟短点号,否则将删除所有断点。
    
    4.删除指定行上的断点
    clear命令可以删除指定行上的所有断点,clear命令后面跟行号,否则将报错。

    5.禁用指定的断点
    如果要使某个断点暂时失效,即禁用某个断点,可以使用disable命令来实现。
    
    6.恢复指定的断点
    恢复某个断点使用enable命令,用法与disable命令类似。
    
    7.设置观察点
    用watch命令,后面跟变量或表达式。
    
    
3.数据显示与变量赋值

    1.显示变量或表达式的值
    print命令可以显示变量或表达式的值,
    也可以通过参数来设定输出的格式
    p/x sum
    上面的参数x表示以十六进制格式显示,其他参数如下:
    t: 以二进制格式显示
    o:以八进制格式显示
    d:以十进制格式显示
    c:以字符格式显示
    f:以浮点数显示
    
    2.自动显示变量或表达式的值
    设置一些自动显示的变量或表达式,对应的命令为diaplay,使用了该命令之后,每当程序运行到断点处都会显示变量或表达式的值。
    GDB还 提供 了 一些与display相关的命令,与断点管理命令类似,主要包括以下:
    info display: 查看当前所有自动显示的变量或表达式
    undisplay 或 delete display:删除一个自动显示的变量或表达式,命令后面跟的编号。
    disable display:禁用一个自动显示的变量或表达式。
    enable display:恢复一个自动显示的变量或表达式。
    
    3.显示变量的数据类型
    如果要查看变量的数据类型,可以使用whatis命令和ptype命令,命令如下:
    whatis x
    或
    ptype sum
    
    4.修改变量的值
    在调试中,可能修改某一变量的值,以检验代码的正确性,可以使用set命令来完成。
    命令格式:
       set sum = 100
       
     此外,print命令除了显示变量或表达式的值,也可以用来赋值。
     print x=10
    
  
4.程序执行与函数调用
    
    1.单步执行
       可以使用step命令或next命令。
       
    2.退出被调用的函数
    
       step命令可以跟踪进入被调用函数的内部,但在函数内部如果想取消函数的执行,即忽略没有执行语句并立即返回,可以使用
       return 命令,该命令后面可以跟变量或表达式,以作为函数的返回值。
       
    3.执行到指定行
       until命令可以使程序继续运行到指定行
       
    4.跳转执行
       jump命令,可以指定下一条语句的运行点,即修改程序的执行顺序。
    
    5.强制调用函数
       程序调试过程中,可以使用call来强制调用函数 。
       
       
5.其他常用命令

      1.查看堆栈信息
         GDB提供了backtrace命令(简写为bt)和frame命令
         
         要查看当前栈帧的详细消息,可以使用info frame命令(简写为info f)
         
      2.查看源程序信息
         可以使用info source命令
         
      3.查看寄存器
         
    

 

 


  
      

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

第五节 GDB常用命令

1.GDB的常用命令     调试有很多命令,从简单的文件载入、断点设置,到复杂的内存察看、信号捕捉等。     1.GDB的启动与退出       在输入gdb之后进入GDB,这是唯一一条SH...

jvm第五节-性能调优工具使用

很多开发人员都不是很了解,jdk在安装的时候在bin目录下有很多方便我们调试的工具,有的工具是非常好用的,下面介绍一下jdk自带的调优工具和一些常见的非自带的工具:   名称      ...

第五节(上):struts2验证方法和验证框架的使用

一。使用继承ActionSupport类实现验证方法: ActionSupport类是一个工具类,它实现了Action接口,并且实现了Validateable接口,提供了数据校验功能。 在Valida...

第五节 定时器使用

第五节 定时器使用 命令消息:WM_TIMER 1->发送定时器消息 SetTimer(hwnd,1,60000,NULL).         UINT_PTR SetTimer( ...

自学selenium第五节-selenium各种类的使用

package selenium.test; import java.util.List; import java.util.Set; import org.openqa.selenium.Ale...

使用GDB分析Android Crash问题

  • 2017年12月07日 10:35
  • 2.25MB
  • 下载

gdb使用手册

  • 2015年04月27日 10:57
  • 34KB
  • 下载

使用GDB分析core dump文件

前言在编程过程中,我们可能常常遇到程序可以通过编译, 但在运行时出现Segment fault(段错误)。 产生段错误就是访问了错误的内存段。 产生段错误时,并不像编译错误一样会提示到文件的某一行,...

gdb使用指南

  • 2014年09月02日 15:35
  • 90KB
  • 下载

linux c++调试工具gdb方法使用

  • 2014年05月23日 12:15
  • 5KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:第五节GDB使用
举报原因:
原因补充:

(最多只允许输入30个字)