第五节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.查看寄存器
         
    

 

 


  
      

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

Convert an UNSIGNED byte to a JAVA type

In JAVA, a byte always considered as signed when converted to another type. We must mask the sign bi...
  • wxyxl
  • wxyxl
  • 2001-05-04 14:13:00
  • 675

Spark修炼之道(高级篇)——Spark源码阅读:第五节 Stage提交

Stage提交调用流程: 1.org.apache.spark.scheduler.DAGScheduler.handleJobSubmitted 2. org.apache.spark.sche...
  • lovehuangjiaju
  • lovehuangjiaju
  • 2015-10-26 17:45:45
  • 3945

第五节 GDB常用命令

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

《高性能MySQL》第四章

由于innodb表索引的特殊性,减小主键大小,会使非主键大小也变的更小。 整数类型 tinyint smallint mediumint int bigint 8       16      ...
  • lijingkuan
  • lijingkuan
  • 2015-09-09 16:15:56
  • 505

Unity3D学习 愤怒的小鸟之Play界面(五)

目标:给Play界面添加一个退出界面和背景音乐 1. 添加一个退出按钮,方法和第四讲添加Play按钮一样 if (GUI.Button(Rect(650, 450, 100, ...
  • ariel7321
  • ariel7321
  • 2012-07-10 00:02:24
  • 5788

gdb调试器的使用,gdb

  • 2010年08月16日 09:00
  • 45KB
  • 下载

gdb基本使用方法及常用命令

示例源代码:gdbtest.c-----------------------#include #include "gdbinc.h"int main(int argc, char* argv[]) {...
  • gtuu0123
  • gtuu0123
  • 2009-09-16 16:31:00
  • 6825

算法基础(五):分治

慕课:程序设计与算法(二)算法基础 郭玮老师课程的学习笔记1、归并排序2、快速排序3、输出前m大的数4、求排列的逆序数分治:讲一个任务分成规模更小的多个任务分别处理,最后再处理这些任务的结果,实现整个...
  • wuzhenzi5193
  • wuzhenzi5193
  • 2018-04-17 18:43:02
  • 21

Spark修炼之道系列教程预告

课程内容 Spark修炼之道(基础篇)——Linux基础(12讲)大纲 Spark修炼之道(进阶篇)——Spark入门到精通(30讲)大纲 Spark修炼之道(实战篇)——Spark应用开发实战篇...
  • lovehuangjiaju
  • lovehuangjiaju
  • 2015-08-24 09:56:35
  • 9745

Mac OS X 使用gdb

MAC OS X GDB
  • cairo123
  • cairo123
  • 2016-07-28 12:53:53
  • 10098
收藏助手
不良信息举报
您举报文章:第五节GDB使用
举报原因:
原因补充:

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