码迷,mamicode.com
首页 > 数据库 > 详细

gdb常用

时间:2015-08-10 23:59:10      阅读:394      评论:0      收藏:0      [点我收藏+]

标签:

调试信息条件:
-g或-gdb
gcc -g -o test  test.c
gcc -ggdb3 -o test test.c
ggdb3告诉gcc,使用gdb的扩展产生调试符号。其中“3”表示使用的是第三级(最高级)调试信息。
------------------------------------------------------------------------------
ulimit -c unlimited
再次运行可执行文件,产生core文件

gdb test core
加载test和core一起分析。

输入命令bt可以得到更加详尽的信息。

注:编译允许使用存储信息,可以在bash中使用如下命令
    ulimit -c ***
    指定core文件大小的最大值,“ulimit -c unlimited”表示无大小限制。
----------------------------------------------------------------------------
应用:
1.设置断点
break/b  function或行号

2.启动程序
run [arglist]

3.bt
backtrace:display the program stack.

4.print/p expr
显示变量值

5.next单步执行

6.step单步执行进某一函数。

7.list 列出程序源码

8.help [name] 显示gdb命令信息

9.quit 退出gdb

10.file指定调试文件

11.continue/c使终端程序继续执行
--------------------------------------------
高级应用
1.info b 查看断点信息。
2.b 25 if i=5条件断点
3.disable 断点号 /enable 断点号 /delete 断点号

4.列出数组
p *array@len
p *arr@5;数组开头5个。
p arr[3]@5; arr[3]及其后4个。

5.ptype/display永久显示变量值。

6.X 地址; 查看地址内容
  X/format 指定显示单元的个数

7.set除显示数据外,还可以修改变量的值

8.x按16进制显示变量
  d十进制
  u十六进制显示无符号整形
  o八进制
  t二进制
  c字符显示变量
  f按浮点数格式显示变量
display/x i

9.info catch显示当前函数中的异常处理信息。
10.info args显示当前函数的参数名及值。
11.bt显示栈帧
   bt n只打印栈顶上n层的栈信息
   bt -n只打印栈底下n层的栈信息

   info locals显示栈内变量存值。
   frame 切换栈帧
   frame n ;n为栈层编号

gdb常用

标签:

原文地址:http://www.cnblogs.com/embedded-linux/p/4719516.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!