



免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
HPUX下core文件总结当系统中一些进程由于收到一些信号而非正常结束时,系统便建立一个core文件(是一个内存映像,同时加上调试信息),记录进程当时的一些信息,包括进程状态、数据以及硬件寄存器的值等。1. 删除core文件在这些core文件没有用的时候,可以考虑删除它们。core文件的删除,应该首先确认要删除的core文件是否还有使用价值,可通过file core命令查看是由哪些进程产生的,在确认对调试程序没用的时候再进行删除(find / -name core -exec rm ;),也可以通过下面的命令来删除10天内未存取过的core文件(find / -name core atime +10 exec rm f ;)# file /root/core/root/core: core file from opcuiadm2. 查看core文件的内容进去后打 where, 就可以 show 出你是在程序哪一行当掉的, 还有在当掉时在哪个 function 里, 这个 function是被哪个 function 所 call 的, 而这个 function 又是被哪个function所 call 的. 一直到 main()# gdb -c /root/core.Core was generated by opcuiadm.Program terminated with signal 11, Segmentation fault.#0 0xc020bbe8 in ()(gdb) where#0 0xc020bbe8 in ()warning: Attempting to unwind past bad PC 0xc020bbe8 #1 0xc0059228 in ()#2 0xc0059228 in ()#3 0xc0059228 in ()Cannot access memory at address 0x360000(gdb) q3.core文件的生成开关和大小限制使用ulimit -c命令可查看core文件的生成开关。若结果为0,则表示关闭了此功能,不会生成core文件。使用ulimit -c filesize命令,可以限制core文件的大小(filesize的单位为kbyte)-c指定修改core文件的大小。若ulimit -c unlimited,则表示core文件的大小不受限制。如果生成的信息超过此大小,将会被裁剪,最终生成一个不完整的core文件。再gdb调试的时候,会提示出错。# ulimit -c4194303#ulimit -c 1000#ulimit -c1000#ulimit -c unlimitedUnlimited4.core设置.1 后台Core文件获取方法 Solaris环境Core文件收集方法: 1) 修改Coreadm配置参数。当某个进程发生coredump后,Solaris操作系统自动将core文件转储到指定路径。 请按如下范例步骤打开core文件转储开关: coreadm -d global 删除# coreadm -e core.%f.%pusage:coreadm -g pattern -I patterncoreadm -e global | process | global-setid | proc-setid coreadm -d global | process | global-setid | proc-setid coreadm -p pattern -P enable | disable pid . coreadm -p pattern -P enable|disable -E command argumentsrootBMS105 # coreadm -e global rootBMS105 # coreadm -e global-setid rootBMS105 # coreadm -e proc-setid rootBMS105 # coreadm -e process rootBMS105 # coreadm -e log rootBMS105 # coreadm -g /opt/corefiles/core.%f.%p 设置完成后,查看coreadm状态,当与以下内容一致时,表示配置成功 rootBMS105 # coreadm 全局(主存储器)信息转储文件模式: /opt/corefiles/core.%f.%p 初始(主存储器)信息转储文件模式: core 全局(主存储器)信息转储: enabled 每进程的(主存储器)信息转储: enabled 全局 setid (主存储器)信息转储: enabled 每进程的 setid (主存储器)信息转储: enabled 全局(主存储器)信息转储记录: enabled 2) 在/opt/corefiles中寻找相应的core文件,使用pstack和mdb命令将其转储为txt文件(一般core文件比较大,不易附在问题单中,因此需要将其转储为txt文档) 注:pstack与mdb的区别: pstack 能看到全部堆栈信息; 定位多线程导致的死锁或异常很有用 mdb看到的是栈顶信息; 普通的错误用mdb来得更直接; 例一:使用pstack将UA5000G后台的core文件转储为txt文档 rootN2000Server106 # pwd /opt/corefiles rootN2000Server106 # pstack core.Ua5000GDm.2144.1159153487 Ua5000GDm1.txt rootN2000Server106 # ls Ua5000GDm1.txt core.Ua5000GDm.2144.1159153487 例二:使用mdb将UA5000G后台的core文件转储为txt文档 rootN2000Server106 # pwd /opt/corefiles rootN2000Server106 # mdb core.Ua5000GDm.2144.1159153487 Ua5000GDm2.txt rootN2000Server106 # ls Ua5000GDm1.txt Ua5000GDm2.txt core.Ua5000GDm.2144.1159153487 对于后台coredump问题,需要分别在问题单中附上pstack和mdb转储的txt文件,以便开发定位。 何谓core文件 当一个程序崩溃时,在进程当前工作目录的core文件中复制了该进程的存储图像。core文件仅仅是一个内存映象(同时加上调试信息),主要是用来调试的。1、unix core文件 有时自己的应用程序发生错误,比如访问非法内存地址等,就会造成CoreDump,这时系统将相关的内存映像存为core文件,以便分析。用dbx,gdb,ladebug等工具可以对core文件进行分析,能够定位到程序的哪一行出错。不一定只有供应商的工程师才搞得明白。UNIX下core文件的分析 1、lquerypv -h core文件 6b1,可以查看到Core文件中报错的进程名字。例如:lquerypv -h core_20041210 6b1得到如下的结果,2、采用file命令,直接 file core文件 即可$ file core_20041210core_20041210 AIX core file fulldump 32-bit, exe_CustInfo3、可以采用strings命令,直接将core文件中的所有垃圾提示去掉,只提取有用的信息,比如采用:strings 文件 | awk if (NR /dev/null 2&1但是在开发过程中有时为了调试问题,还是需要在特定的用户环境下打开core文件产生的设置在用户的/.bash_profile里加上ulimit -c unlimited来让特定的用户可以产生core文件如果ulimit -c 0 则也是禁止产生core文件,而ulimit -c 1024则限制产生的core文件的大小不能超过1024kb3. 设置Core Dump的核心转储文件目录和命名规则/proc/sys/kernel/core_uses_pid可以控制产生的core文件的文件名中是否添加pid作为扩展,如果添加则文件内容为1,否则为0proc/sys/kernel/core_pattern可以设置格式化的core文件保存位置或文件名,比如原来文件内容是core-%e可以这样修改:echo /corefile/core-%e-%p-%t core_pattern将会控制所产生的core文件会存放到/corefile目录下,产生的文件名为core-命令名-pid-时间戳以下是参数列表: %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 添加命令名4. 使用core文件在core文件所在目录下键入:gdb -c core它会启动GNU的调试器,来调试core文件,并且会显示生成此core文件的程序名,中止此程序的信号等等如果你已经知道是由什么程序生成此core文件的,比如MyServer崩溃了生成core.12345,那么用此指令调试:gdb -c core MyServer以下怎么办就该去学习gdb的使用了5. 一个小方法来测试产生core文件直接输入指令:kill -s SIGSEGV $coreadm -p core.%f.%p扩展的核心转储文件名如果启用了全局核心转储文件目录,则可使用下表中介绍的变量来区分 core 文件。变量名变量定义%d可执行文件目录名,最多包含 MAXPATHLEN 个字符%f可执行文件名,最多包含 MAXCOMLEN 个字符%g有效组 ID%m计算机名 (uname -m)%n系统节点名 (uname -n)%p进程 ID%t时间的十进制值 (2)%u有效用户 ID%z在其中执行进程的区域的名称 (zonename)%字面值 %Example1 Setting the Core File Name PatternWhen executed from a users $HOME/.profile or $HOME/.login, the following command sets the core file name pattern for all processes that are run during the login session:example$ coreadm -p core.%f.%pNote that since the process-ID is omitted, the per-process core file name pattern will be set in the shell that is currently running and is inherited by all child processes. Example2 Dumping a Users Files Into a SubdirectoryThe following command dumps all of a users core dumps into the corefiles subdirectory of the home directory, discriminated by the system node name. This command is useful for users who use many different machines but have a shared home directory.example$ coreadm -p $HOME/corefiles/%n.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 关+于归纳逻辑的若干问题-对现代归纳逻辑的回顾与展望
- 智能交通车辆购置借款合同模板
- 北美定居生活指导及投资咨询合同
- 智能制造企业代理记账与供应链金融协议
- 智能化工厂厂房转租合作协议
- 高端个人财务规划代理协议
- 叉车司机劳务派遣与安全保障协议
- 餐饮门店资产评估与转让合同
- 和0有关的加减法课件
- 伤寒和副伤寒护理
- 2024年江苏省昆山市事业单位公开招聘教师岗考试题带答案分析
- 2025年无人机操控师考试试题及答案
- 2025年苏州市中考英语二模模拟试题(六)(含解析)
- 第六单元不规则或组合图形的周长“拓展型”专项练习-五年级数学下册典型例题(原卷版)苏教版
- 2025年中考物理答题技巧与模式专题08压强与浮力的常考难点综合计算(学生版+解析)
- 2025年中考化学模拟考试试卷附带答案
- 水电使用合同协议书
- 考古发掘考试试题及答案
- 血液透析机试题及答案
- 中国兽药典三部 2020年版
- NB/T 11646-2024井工煤矿采空区自然发火监测预警技术规范
评论
0/150
提交评论