gdb简单调试~core文件】的更多相关文章

1.打开终端,进入项目目录,输入ulimit -a ,可以看core文件大小设置(第一行),若为0, 则没有打开core dump设置. 2.ulimit -c unlimited ,core文件大小不限制.相应的,ulimit -c 200 ,core 大小为100K.可以看到,第一行变为unlimited~ 3.再次运行程序,再次出现你想要调试的错误. 这时也会生成一个core文件. 4. gdb xxx(应用程序) core ,打开core文件. 5.输入bt ,就可以查看想要的错误信息了…
列出一些常见问题: 一,如何使用core文件 使用core文件 在core文件所在目录下键入: gdb -c core 它会启动GNU的调试器,来调试core文件,并且会显示生成此core文件的程序名,中止此程序的信号等等. 如果你已经知道是由什么程序生成此core文件的,比如MyServer崩溃了生成core.12345,那么用此指令调试: gdb -c core MyServer 以下怎么办就该去学习gdb的使用了 一个小方法来测试产生core文件 直接输入指令:kill -s SIGSEG…
使用gdb和core dump迅速定位段错误 关键字:gdb.段错误.core dump 一.什么是core dump core:内存.核心的意思: dump:抛出,扔出: core dump:前提:当某程序崩溃的一瞬间,内核会抛出当时该程序进程的内存详细情况,存储在一个名叫core.xxx(xxx为一个数字,比如core.699)的文件中. 二.更改生成的core文件的大小限制 可见,core文件是内核生成的,那某一个进程因为段错误而崩溃的时候的内存映像很大,那必然会生成一个很大的core文件…
使用 gcc -g test.c -o test.out 编译程序,只有加-g参数才支持gdb调试: 然后 gdb ./test.out 运行可执行文件,进入gdb调试模式(gdb),在括号后面的输入命令: (gdb)help:查看命令帮助 (gdb)start:单行执行 (gdb)l:查看源程序 (gdb)n:执行下一行 (gdb)s:进入被调函数里面 (gdb)bt:查看函数调用栈 (gdb)p 变量:打印变量值 (gdb)f:切换函数栈帧 (gdb)run:重新开始运行文件 (gdb)fi…
交叉编译gdb和gdbserver 1.下载gdb:下载地址为:http://ftp.gnu.org/gnu/gdb/按照一般的想法,最新版本越好,因此下载7.2这个版本.当然,凡事无绝对.我们以gdb-7.2.tar.bz2 这个文件为例.2.解压缩: $ tar jxvf gdb-7.2.tar.bz2 注:小技巧:Linux下一般压缩文件后缀为.tar.bz2和.tar.gz,它们解压命令有两三个选项是一致的: xf(v),前者再加上j选项,后者再加上z选项. 3.进入该目录 $ cd g…
关于gdb调试core文件总是一堆问号的问题 问题描写叙述:已经在编译选项中增加了-g,可是查看core文件时.还是一堆问号,使用的命令为:gdb -c core 解决方式:因为gdb -c core这种使用在有些系统下支持不是非常好.所以推荐用例如以下两种方法: 1) gdb exe (gdb) core-file core 2) gdb -c core (gdb) file exe 而当中另外一种方法在某些系统上也是不好用的,所以就用第一种就可以.…
http://blog.csdn.net/xiaoxiaoniaoer1/article/details/7740820 1.core文件的生成开关和大小限制---------------------------------1)使用ulimit-c命令可查看core文件的生成开关.若结果为0,则表示关闭了此功能,不会生成core文件.2)使用ulimit-cfilesize命令,可以限制core文件的大小(filesize的单位为kbyte).若ulimit-cunlimited,则表示core…
如何为自己的进程产生core 文件,又不想退出这个进程? 系统只在程序崩溃退出时自动产生core file. 有的人像自己处理异常信号,然后自己产生一个core file,然后继续运行.那该怎么办呢? 如果自己在想产生core file的时候,调用abort 函数来生成文件,core文件是生成了,但自己的进程也退出了.为了进程退出,在网上找到两个办法: =============================================方法一: 先fork创建一个子进程,子进程拥有和父进程…
gdb-7.2-64.el6_5.2.x86_64/usr/bin/gcore/usr/bin/gdb/usr/bin/gdb-add-index/usr/bin/gdbtui/usr/bin/gstack/usr/bin/pstack [root@coreserv tmp]# rpm -qa|grep abrabrt-libs-2.0.8-6.el6.centos.x86_64abrt-addon-ccpp-2.0.8-6.el6.centos.x86_64abrt-2.0.8-6.el6.c…
coredump文件 什么是coredump? 通常情况下coredmp包含了程序运行时的内存,寄存器状态,堆栈指针,内存管理信息等.可以理解为把程序工作的当前状态存储成一个文件.许多程序和操作系统出错时会自动生成一个core文件. 造成程序coredump的原因很多,这里根据以往的经验总结一下: 1 内存访问越界   a) 由于使用错误的下标,导致数组访问越界   b) 搜索字符串时,依靠字符串结束符来判断字符串是否结束,但是字符串没有正常的使用结束符   c) 使用strcpy, strca…