如何分析core

如何分析core,第1张

什么是Core Dump?

Core的意思是内存, Dump的意思是扔出来, 堆出来.

开键春发和使用Unix程序时, 有时程序莫名其妙的down了, 却没有任何的提示(有时候会提示core dumped). 这时候可以查看一下有没有形如core.进程号的文件生成, 这个文件便是 *** 作系统把程序down掉时的内存内容扔出来生成的, 它可以做为调试程序的参考.

core dump又叫核心转储, 当程序运行过程中发生异常, 程序异常退出时, 由 *** 作系统把程序当前的内存状况存储在一个core文件中, 叫core dump.

如何使用core文件?

gdb -c core文件路径 [应用程序的路径]

进去后输入where回车, 就可以显示程序在哪一行当掉的, 在哪个函数中.

为什么没有core文件生成呢?

有时候程序down了, 但是core文件却没有生成. core文件的生成跟你当前系统的环境稿返耐设置有关系, 可以用下面的语句设置一下, 然后再运行程序便成生成core文件.

ulimit -c unlimited

core文件生成的位置一般于运行程序的路径相同, 文件名一般为core.进程号

可以执行limit命令具体的取值,如下:

<75 sersrv1 [pisac10] :/home/pisac10>limit

cputime unlimited

filesizeunlimited

datasizeunlimited

stacksize unlimited

coredumpsize4194303 kbytes

memoryuse unlimited

vmemoryuse unlimited

descriptors 1024

memorylockedunlimited

maxproc 69632

如果发现某些选项达不到要求,可以将这些放大

用gdb查看core文件:

下面我们可以在发生运行时信号引起的错误时发生core dump了.

发生core dump之后, 用gdb进行查看core文件的内容, 以定位文件中引发core dump的行.

gdb [exec file] [core file]

如:

gdb ./test test.core

在进入gdb后, 用bt命令查看backtrace以检查发生程序运行到哪里, 来定位core dump的文世厅件->行.

如何知道一个core文件是哪个进程的:

使用file core文件命令就可以了,如下:

<63 sersrv1 [pisac10] :/home/pisac10>file core.3118

core.3118: ELF 32-bit LSB core file Intel 80386, version 1 (SYSV), SVR4-style, SVR4-style, from 'csser'

SUSE Linux *** 作系统可以使用kill -7 进程号 命令强制杀掉进程并且产生core文件

thread apply all where

1.

core文件的简单介绍

在一个程序崩溃时,它一般会在指定目录下生成一个core文件。core文件仅仅是一个内存映象(同时加上调试信息),主要是用来调试的。

2.

开启或关闭core文件的生成

用以下命令来阻止系统生成core文件:

ulimit

-c

0

下面的命令可以检查生成竖燃core文件的选州尘项是否打开:

ulimit

-a

该命令将显示所有的用户定制,其中选项-a代表“all”。

也可以修改系统文件来调整core选项

在/etc/profile通常会有这样一句话来禁止产生core文件,通常这种设置是合理的:

#

No

core

files

by

default

ulimit

-S

-c

0

>

/dev/null

2>&1

但是在开发过程中有时为册纤禅了调试问题,还是需要在特定的用户环境下打开core文件产生的设置

在用户的~/.bash_profile里加上ulimit

-c

unlimited来让特定的用户可以产生core文件

如果ulimit

-c

0

则也是禁止产生core文件,而ulimit

-c

1024则限制产生的core文件的大小不能超过1024kb

3.

设置Core

Dump的核心转储文件目录和命名规则


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/8179895.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存