问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

corefile是什么文件夹?

发布网友 发布时间:2022-05-05 12:56

我来回答

2个回答

热心网友 时间:2022-06-27 12:57

方法一:
从接触unix开始就一直听到和遇到core mp,特别是刚学着使用C语言在AIX下编写程序的时候,core mp更是时不时就会不请自来。记得当时刚写应用的时候,提交程序时最怕的就是在运行过程时遇到core mp,对于银行核心系统,特别是使用静态应用进程,如果一个相对频繁一点的交易导致core mp,那么毫无疑问,除了赶紧定位错误改程序外,重启进程甚至无法争取到多少缓冲的时间来进行代码的更正和测试。而且往往导致core mp的,就是程序中一个小小的未注意到或者未测试到的一个疏忽。

虽然常常遇到core mp,不过很长时间内,都是出于知道这个名字,知道它导致的后果,知道一部分导致它出现的原因,其他的就都不甚了了了。说起来,就是自己太懒了,懒得看书......少壮不努力啊。看过一则统计,说60岁以上的老人,超过70%都后悔少壮不努力,不知统计的数据能否反映整个社会的情况。不过总的来说,这句古话还是有些道理的。大家不要学我。哈哈

core mp,翻译过来讲,就是核心转储。大致上就是指,如果由于应用错误,如浮点异常、指令异常等,操作系统将会转入内核的异常处理,向对应的进程发送特定的信号(SIGNAL),如果进程中没有对这些信号进行处理,就会转入默认的处理,core mp就是其中的一种。如果进程core mp,系统将会终止该进程,同时系统会产生core文件,以供调试使用。这个core文件其实就是内存的映像,即进程执行的时候内存的内容,也就是所谓的core mp。平常大家说某某进程core mp了,其实主要的意思就是说:某某进程因为错误而被系统自动终止了。

AIX上提供了dbx工具可以对core mp进行调试,协助定位引起core mp的代码。最普通的语法是:
dbx 应用名 core文件, 然后使用where命令来显示调试信息
一般来讲,根据工作中遇到的情况,dbx还是能够比较轻松的根据提示的内容来定位代码的。不过也有一些特殊情况时,dbx显示的调试信息过于模糊或者不直观,这个时候就只能根据经验来逐步定位了。有时定位起来会耗用相当长的时间。遇到这种情况时,使用日志文件,通过在代码中穿插多个写log的语句,也可以协助发现。因为进程core mp时,日志当然也中断了,根据日志在哪个代码行之后或之前中止了,可以有效缩小寻找的范围。甚至,在有些情况下,使用日志定位是唯一简便的方法了。

方法二:

在Unix系统下,应用程序崩溃,一般会产生core文件,如何根据core文件查找问题的所在,并做相应的分析和调试,是非常重要的,本文对此做简单介绍。
例如,一个程序cmm_test_tool在运行的时候发生了错误,并生成了一个core文件,如下:
-rw-r–r– 1 root cmm_test_tool.c
-rw-r–r– 1 root cmm_test_tool.o
-rwxr-xr-x 1 root cmm_test_tool
-rw——- 1 root core.19344
-rw——- 1 root core.19351
-rw-r–r– 1 root cmm_test_tool.cfg
-rw-r–r– 1 root cmm_test_tool.res
-rw-r–r– 1 root cmm_test_tool.log
[root@AUTOTEST_SIM2 mam2cm]#
就可以利用命令gdb进行查找,参数一是应用程序的名称,参数二是core文件,运行
gdb cmm_test_tool core.19344结果如下:
[root@AUTOTEST_SIM2 mam2cm]# gdb cmm_test_tool core.19344
GNU gdb Red Hat Linux (5.2.1-4)
Copyright 2002 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type “show copying” to see the conditions.
There is absolutely no warranty for GDB. Type “show warranty” for details.
This GDB was configured as “i386-redhat-linux”…
Core was generated by `./cmm_test_tool’.
Program terminated with signal 11, Segmentation fault.
Reading symbols from /lib/i686/libpthread.so.0…done.
Loaded symbols for /lib/i686/libpthread.so.0
Reading symbols from /lib/i686/libm.so.6…done.
Loaded symbols for /lib/i686/libm.so.6
Reading symbols from /usr/lib/libz.so.1…done.
Loaded symbols for /usr/lib/libz.so.1
Reading symbols from /usr/lib/libstdc++.so.5…done.
Loaded symbols for /usr/lib/libstdc++.so.5
Reading symbols from /lib/i686/libc.so.6…done.
Loaded symbols for /lib/i686/libc.so.6
Reading symbols from /lib/libgcc_s.so.1…done.
Loaded symbols for /lib/libgcc_s.so.1
Reading symbols from /lib/ld-linux.so.2…done.
Loaded symbols for /lib/ld-linux.so.2
Reading symbols from /lib/libnss_files.so.2…done.
Loaded symbols for /lib/libnss_files.so.2
#0 0×4202cec1 in __strtoul_internal () from /lib/i686/libc.so.6
(gdb)
进入gdb提示符,输入where,找到错误发生的位置和堆栈,如下:
(gdb) where
#0 0×4202cec1 in __strtoul_internal () from /lib/i686/libc.so.6
#1 0×4202d4e7 in strtoul () from /lib/i686/libc.so.6
#2 0×0804b4da in GetMaxIDFromDB (get_type=2, max_id=0×806fd20) at cmm_test_tool.c:788
#3 0×0804b9d7 in ConstrctVODProgram (vod_program=0×40345bdc) at cmm_test_tool.c:946
#4 0×0804a2f4 in TVRequestThread (arg=0×0) at cmm_test_tool.c:372
#5 0×40021941 in pthread_start_thread () from /lib/i686/libpthread.so.0
(gdb)
至此,可以看出文件出错的位置是函数 GetMaxIDFromDB ,两个参数分别是2和0×806fd20,这个函数位于源代码的788行,基于此,我们就可以有针对性的找到问题的根源,并加以解决。

热心网友 时间:2022-06-27 12:57

看名字是放置核心转储文件的,程序出错core mp生成的文件,用来调试、差错
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
单位高温防护欠缺致员工中暑如何对待 狗狗为什么爱看视频 360浏览器怎么设置倍速播放 ...先讲女主的灵魂飘荡了一段时间,然后重生,请问是那本? 拯救者散热器怎么开 电脑如何一键还原系统电脑一键还原怎么操作 神舟笔记本电脑怎么重新设置神舟战神bios恢复出厂设置 神舟电脑恢复出厂设置神舟战神怎么恢复原厂系统 水泥楼梯如何铺木楼梯 家里面楼梯是水泥的不想铺地毯或者地砖还能铺什么 求助,导入网表时ALLEGRO具体是怎样找到封装的 VC++6.0安装问题 笔刷放在哪个文件夹下才能使用啊 关于Android JNI 编程如何定位段错误的问题(addr2line的使用)求答案 求分享CADtools 11中文破解版,谁可以给我一个安装包 C:\WINDOWS\Symbols 请问以下C:\WINDOWS中的文件夹哪些是可以删除的 电脑里多了个文件夹symbols,请问是什么?可以删除吗? 请问我的F硬盘分区多了 这样的这样的文件夹Symbols 里面到底是什么东西有用吗重要吗? 电脑里有个symbols的文件夹 wps的表格中,怎么样做选定日期之间的求和! 按揭车可以去银行做无抵押贷款吗 天涯问答的介绍 银芝麻:期货开户之后可以同时交易多少个品种? 期货开户后与期货公司还有什么关系 求专业人士指导:空管局技术保障(通信设备导航监控运行维护岗位)会不会经常熬夜加班? 天涯论坛的帖子容量问题,懂的进~ 天涯社区的特点是什么 环保公司环境监测设备运维人员这工作怎么样,日常需要做什么,待遇可 天涯论坛与天涯社区的关系 关于电脑蓝屏的问题,帮我看下这是什么出问题了?怎么解决?中文翻译过来看不太明白,谢谢! 求初一暑假周记300字 初中生暑假日记10篇300字到400字有文采 刚买了个oppo手机下载了阴阳师,无论如何也不能用原来的账号登陆 输入法如何输入汉语拼音 《假孝子》文言文 假孝子 译文 <持金还乡><假孝子><月攘一鸡>的解释和文言文 文言文假孝子中的郭纯是个怎样的人? 历史上有个假孝子,父母死,每哭,则撒食于地吸引鸟至,以示孝感天地降祥瑞,请哪位网友指明出处为谢 读完文言文假孝子有何感想? 孟母教子 选自列女传 翻译 在手机店里面被坑办了一个手机卡送了一个小度,每个月必须的扣88话费要用满20个月,怎么办? 手机卡办理过领取小度,不用卡了怎么办? 办手机号送的小度需要从支付宝里面冻结资金请问这个冻结的钱怎么返还? 手机店领小度要银行卡号 参加移动公司送小度活动,128元套餐合约两年,还没有到期,今天携号转网了,有什么影响? 把手机卡订购了一个小度,现在这个手机卡我不想要了,算不算违约呢? 我是联通卡用户听说联通充话费199元送小度什么情况下勺可以 创维电视怎么搜索不到wifi,搜索一会就窗口就消失,也不显示wifi?