标签:
调试信息条件:
-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为栈层编号
标签:
原文地址:http://www.cnblogs.com/embedded-linux/p/4719516.html