2-2 关于gdb的使用

1.  基础概念

    GDB是GNU发布的程序调试工具,主要的功能包括:

        启动被调试的程序;

        让程序在指定的位置停住;

        在程序停止时查看程序的状态(如变量值)。

2.  GDB的使用流程及方法

    2.1  变异生成带有调试信息的可执行文件:gcc -g test.c -o test

    2.2  启动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  delet(d) 断点号:删除断点

  3.7  print(p) 变量名:查看变量的当前值

  3.8  next(n):但不运行程序(不进入子函数)

  3.9  step(s):单步运行程序(进入子函数)

  3.10  continue(c):继续运行程序(先在其他地方打断点)

  3.11  set var = value : 设置变量的值

  3.12  quit(q):退出gdb


在调试时遇到的一些奇怪的问题:

1.  在用gdb调试程序的时候,有时候打印变量时,会出现<optimized out>的情况,可在编译的时候加上-O0选项。gcc默认用-O2进行优化编译,用-O0告诉编译器不进行优化,在调试的时候才能正常显示变量的值。当然在产品发布的时候应该去除-g和-O0选项。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值