在AIX系统中,如何利用名为core的文件?

 2007年01月10日 14:50分         作者: <script></script> 网界网 佚名     来源:

摘要:当进程在异常终止运行时,系统会把该进程对应的地址空间中的数据写到core文件中(这个过程被称为dump),以便程序员对其进行分析,找出进程异常终止的原因。

 

当进程在异常终止运行时,系统会把该进程对应的地址空间中的数据写到core文件中(这个过程被称为dump),以便程序员对其进行分析,找出进程异常终止的原因。缺省情况下,异常终止的进程在启动它的当前目录下产生core文件。

默认情况下,一个core文件的文件名是core,新的core文件会覆盖旧的core文件。从AIX 5.1开始,改变了core文件的命名方法,使得每一个core文件拥有唯一的文件名。要使用这个新方法,就要把CORE_NAMING环境变量的值设置为yes

一个占用内存资源很大的进程所产生的core文件也非常大,系统管理员要定期为程序员收集这些core文件,并删除这些文件。

AIX 5.3中,用户可以设置以产生压缩的core文件和指定一个目录来保存core文件。用lscore命令查看当前用户或指定用户的core设置,要查看peter用户的core设置,命令是lscore peter。查看整个系统的core设置,命令是lscore -d

chcore命令修改当前用户的core设置,例如:

$ chcore -c on -p on -l /tmp/coredir - n on

上面的命令修改当前用户的core设置,-c on参数的作用是打开压缩core文件功能,用户可以用uncompress命令来解压缩,-p on参数的作用是打开指定的core文件位置,保存core文件的目录是由-l参数指定为/tmp/coredir目录,-n on参数的作用相当于把CORE_NAMING环境变量值设置为yes。其中on表示打开这些功能,将on换成off,表示关闭这些功能。

每一个core dump会产生一个新的错误日志记录。用errpt命令查看这样的错误日志记录可以帮助程序员识别导致core dump的应用程序。程序员可以用dbx命令来调试产生core文件的程序。要用dbx命令调试有问题的程序时,必须保证core文件和产生core文件的程序都在当前目录下,调试程序最简单的命令格式如下:

$ dbx  ProgramFile  CoreFile

当一个进程正在运行时,如果程序员想获得这个进程所占内存空间中的内容,可以用gencore命令把这个进程对应的地址空间中的数据写到一个指定的文件中,gencore命令并不会终止进程的运行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值