Chinaunix首页 | 论坛 | 博客
  • 博客访问: 351260
  • 博文数量: 106
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 861
  • 用 户 组: 普通用户
  • 注册时间: 2013-09-10 08:32
文章分类

全部博文(106)

文章存档

2016年(11)

2015年(93)

2013年(2)

分类: LINUX

2015-11-30 18:56:59

1.    GDB的功能:
    1.1.    启动被调试的程序
    1.2.    让被调试的程序在指定的位置停住
    1.3.    当程序被停住的时候,可以检查程序的状态(如变量值)。
2.    GDB使用流程
    2.1.    编译生成可执行文件(-g表示:生成的可执行文件具有可调试的信息):gcc  -g  test.c  -o  test
    2.2.    启动GDB(gdb + 可执行文件):gdb  test    
    2.3.    在main函数处设置断点:break main
    2.4.    运行程序:run
    2.5.    利用更加丰富的gdb命令对程序进行调试
3.    GDB命令(括号中是命令的缩写)
    3.1.    list(l)    :查看程序
    3.2.    break(b)函数名    :在某函数入口处添加断点
    3.3.    break(b)行号    :在指定行添加断点
    3.4.    break(b)文件名:行号    :在指定文件的指定行添加断点
    3.5.    info break    :查看所有设置的断点
    3.6.    delete 断点编号    :删除断点
    3.7.    print 变量名    :打印变量的数值
    3.8.    next(n)    :单步运行程序(不进入子函数)
    3.9.    step(s)    :单步运行程序(进入子函数)
    3.10.    continue(c)    :继续运行程序
    3.11.    set var=value    :设置变量的值
    3.12.    quit(q)    :退出gdb
    3.13.    打条件断点:break(b)行号 if  i=10       当i=10的时候才停下来。
    3.14.    finish运行程序,知道当前函数结束
    3.15.    watch 变量名:对指定便利进行监控
    3.16.    打条件断点:break(b)行号 if  i=10       当i=10的时候才停下来。
list 命令用于列出源码
 

(gdb) help list # 查看list命令帮助

(gdb) list # 查看代码执行位置附近10行,假设 15-24

(gdb) list # 再显示10行,即25-34

(gdb) list 38 # 查看第38行周围的 10 行,即33 - 42

(gdb) list - # 查看上一个list命令查看的代码之前的10行,即23-32行

(gdb) list 3,19 # 查看3-19行

(gdb) list main # 查看main函数周围的10行代码

(gdb) list flow.c:23 # 查看flow.c文件第23行周围的10行

(gdb) list flow.c:hello # 查看flow.c文件中函数hello周围的10行

(gdb) list *0x12345678 # 查看地址为 0x12345678 的符号附近的10行代码

search/forward-search/reverse-search 命令用于在源码中搜索

usage: search <regular expression>
(gdb) help search #查看search命令帮助

(gdb) help forward-search #查看forward-search命令的帮助

(gdb) help reverse-search #查看reverse-search命令的帮助

(gdb) search hello #从当前位置向前查找含有"hello"的第一行

(gdb) search [0-9]\{1,\} #从当前位置向前查找含有数字的第一行

(gdb) reverse-search ^#  #从当前位置向后查找以‘#’开头的第一行

阅读(1682) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~