GDB与coredump错误类文件的解析
GDB是Linux与UNIX系统下的一款程序调试工具,下面来介绍GDB的用法:
请先看这个程序:
这是我们作为实验的一个小程序,共10行输出4
进行编译如果要用GDB调试必须要加-g参数
这是编译好的文件的正常运行
开始调试这个程序 gdb 加文件名
现在介绍第一个参数l(list)就是如图这样显示程序的内容, l后还可以加数字,就是打印这个行数上下共10行。
start程序开始单步调试,自动执行第一步。
参数b 设置断点就是程序函数到这一步暂停等待下一步的指示,b 5 就是在第五行设置断点,特别的如果这一行是空行,它会自动跳到下一行去,所以设置的断点不是绝对的断点,r参数(run)就是运行程序,一步运行完或者到断点暂停,使用r与b 参数可以随心所欲的掌控程序运行。
info b查看断点的数量与情况,del 行号,删除已经设定的行号,应经设定的断点会一直存在(请注意这一点)
参数c程序继续执行直到遇到下一个断点暂停,n不进入子函数进行单步运行,s进入子函数进行单步运行。
p 打印某个值,set 给某个值赋值。
注意:
系统函数不能单步调试
无初始值的行也会自动跳过
现在介绍有段错误文件的调试,一般操作系统并不开生成错误文件这个选项,因为这回产生很多的垃圾文件,我们可以通过
ulimit -c unlimited 开启生成coredump文件。想要永久生效请修改,配置文件:
bash.profile /etc/profile 或者/etc/security/limits.conf
然后 echo"/corefile/core-%e-%P-%t"> /proc/sys/kernel/core_pattern
产生的core文件名为core-进程名-PID-时间戳 %h添加主机名
然后就可以调试了gdb coredump 段错误文件就可以看到程序出错最后的栈的信息了。
原文地址:http://blog.csdn.net/zmrlinux/article/details/44878789