Linux系统下程序出错时会自动生成一个core文件,该文件包含了程序运行时的内存,寄存器状态,堆栈指针,内存管理信息等。下面简单介绍coredump使用方法。
ulimit –c (查看core dump文件的大小,一般开始是0)
0 (表示coredump开关处于关闭状态)
- 输入如下命令修改core文件大小,单位kbytes
ulimit -c 1024 #最大1024kb
ulimit -c unlimited #取消大小限制
同时可以使用ulimit –a命令显示当前的各种用户进程限制
3 |
core file size (blocks, -c) unlimited |
4 |
data seg size (kbytes, -d) unlimited |
5 |
scheduling priority (-e) 0 |
6 |
file size (blocks, -f) unlimited |
7 |
pending signals (-i) 38912 |
8 |
max locked memory (kbytes, -l) 32 |
9 |
max memory size (kbytes, -m) unlimited |
11 |
pipe size (512 bytes, -p) 8 |
12 |
POSIX message queues (bytes, -q) 819200 |
13 |
real-time priority (-r) 0 |
14 |
stack size (kbytes, -s) 10240 |
15 |
cpu time (seconds, -t) unlimited |
16 |
max user processes (-u) 38912 |
17 |
virtual memory (kbytes, -v) unlimited |
18 |
file locks (-x) unlimited |
2. core文件的名称和生成路径
/proc/sys/kernel/core_uses_pid 可以控制产生的 core 文件的文件名中是否添加 pid 作为扩展 ,如果添加则文件内容为 1 ,否则为 0。需要修改的话,可以使用如下命令:
echo "1" > proc/sys/kernel/core_uses_pid
proc/sys/kernel/core_pattern 可以设置格式化的 core 文件保存位置或文件名 ,默认的是|/usr/libexec/abrt-hook-ccpp %s %c %p %u %g %t e。需要修改的话,可以使用如下命令:
echo "/media/test/core-%e-%p-%t">/proc/sys/kernel/core_pattern
参数列表:
%p - insert pid into filename 添加pid
%u - insert current uid into filename添加当前uid
%g - insert current gid into filename添加当前gid
%s - insert signal that caused the coredump into the filename添加导致产生core的信号
%t - insert UNIX time that the coredump occurred into filename添加core文件生成时的unix时间
%h - insert hostname where the coredump happened into filename添加主机名
%e - insert coredumping executable name into filename添加命令名
3. 生成core文件并使用gdb进行调试
输入如下内容
#include <assert.h>
int main()
{assert(0);
return 0;}
- 将test.c的代码进行编译连接,生成并执行可执行文件test
7 |
###test : test.c : 4 : main: Assertion ‘0’ failed. |
1 |
gdb -c /media/test/core-test-3779-1345098973 |
分享到:
相关推荐
通过实例来分析linux中如何定位coredump问题。非常实用
SegmentFault(coredump)调试方法.pdf
core dump 问题定位方法
ubuntu ubuntu_linux下程序崩溃生成coredump的方法
增强版 linux版本 core崩溃的定位流程,定位方法积累与总结,适合定位程序时使用,同时能增加自身功力,了解多了,多多益善。
windows core崩溃的定位流程,定位方法积累与总结,适合定位程序时使用,同时能增加自身功力,了解多了,多多益善。
它可以与内置的pdb以及其他流行的调试器(pudb,ipdb和pdbpp)一起使用。 我为什么写这个? 我花了太多时间试图从没有足够信息的日志中识别有关错误的详细信息。 能够打开调试器并将崩溃的进程的整个堆栈加载到...
Java Core-HeapDump文件及其分析方法
在Windows平台下用C++开发应用程序,最不想见到的情况恐怕就是程序崩溃,而要想解决引起问题的bug,最困难的应该...目前有一些方法可以解决:崩溃地址 + MAP文件;MAP文件;SetUnhandledExceptionFilter + Minidump。
linux开发经常会发生Segmentation fault问题,这是网上看到的一篇博文,共享给大家;有需要的下载。
IBM Thread and Monitor Dump Analyzer for Java 2014年1月最新发布 可以分析weblogic或was当机生成的javacore和dump文件 使用方法在命令行输入 java -Xmx500m -jar jca452.jar
本文讲述了实现core文件自动生成的配置方法,具体执行步骤如下: 1.编辑环境配置文件,让shell启动时自动设置ulimit vi /etc/profile ...这样就可以实现以后发生coredump时,core文件就可以自动生成到
IBM Thread and Monitor Dump Analyzer for Java(简称 jca)。它可以识别Java线程中的挂起,死锁,资源竞争,和瓶颈。 使用方法: java -Xmx1000m -jar jca456.jar
如果是死机我们可以看coredump,但是有时候coredump可能是死在C库,我们看不出来啥。这时我们可以加打印,打印出相关变量,用于确定问题所在。这里记录自己一个简单的问题解决的方法。 解决思路: 1,程序在经过一个...
IBM Thread and Monitor Dump Analyzer for Java,javacore分析工具,使用方法,在liunx上解压,执行命令java -Xmx500m -jar jca395.jar
就报core dump之类错误。 这个makefile我也修改了。我想哪怕一行行gdb,我也要把这个程序调通。实在不行,直接给matz写封信,请他帮助在ubuntu下调通。 另外,为了少报些错,我把gcc进行了降级,目前我使用的是...
目录 1.Java线程堆栈分析 2.通过Java线程堆栈进行性能瓶颈分析 3.Java内存泄漏分析和堆内存设置 ...K IBM JDK下定位引起CoreDump的JIT方法 L 如何解读Java Core 文件? M 几个奇怪的现象 N 感谢TEX