一. coredump的使用:
何谓core文件?当一个程序崩溃时,在进程当前工作目录的core文件中复制了该进程的存储图像。
core文件仅仅是一个内存映象(同时加上调试信息),主要是用来调试的。
参考:http://blog.chinaunix.net/uid-29974135-id-4650793.html
-
编译debug版本的应用(+g):
① 生成core文件
# ulimit -c unlimited
# echo ‘core.%e.%p’ > /proc/sys/kernel/core_pattern
# ./main_debug &
死机自动产生core.bu_main.1779(文件有619M)
----不知道为什么有时不能产生core?
----将机器里面应用存放的分区挂载为rw的,好像就能够产生core了—[不知道根本原理]
----core文件很大,有时需要等待1分钟生成结束。
② 服务器上使用gdb调试
#arm-xilinx-linux-gnueabi-gdb main_debug core.bu_main.1779
(gdb) bt
打印:#0 0x359e6a34 in ?? ()
#1 0x35a2a1e4 in ?? ()
Backtrace stopped: frame did not save the PC
则启动时前面有提示“
warning: Could not load shared library symbols for …
Use the “info sharedlibrary” command to see the complete listing.”
(gdb) bt 正确报告
#1 0x35935b68 in exit () from /nfs/fwei/01hsr/01core_debug/lib/libc.so.6
#2 0x006e029c in mod_if_exit_handler (sig=11)
at /home/share/fwei/prod