`
chinese.darren
  • 浏览: 98829 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Linux 下core文件分析

    博客分类:
  • JVM
阅读更多
原文:http://blog.csdn.net/gobitan/article/details/5644151

Linux平台下的core file分析

胡家辉 2010-05-06



第一步:找到core file是由哪个程序产生的

[root@app10 dennis]# file core.11751

core.11751: ELF 64-bit LSB core file AMD x86-64, version 1 (SYSV), SVR4-style, from 'java'

[root@app10 dennis]#

从上面可以看出,该core file是由java产生的。



第二步:用gdb调试器找到问题所在,执行如下命令

[root@app10 dennis]# gdb java core.11751

GNU gdb Fedora (6.8-27.el5)

Copyright (C) 2008 Free Software Foundation, Inc.

License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

This is free software: you are free to change and redistribute it.

There is NO WARRANTY, to the extent permitted by law.  Type "show copying"

and "show warranty" for details.

This GDB was configured as "x86_64-redhat-linux-gnu"...

(no debugging symbols found)

Reading symbols from /lib64/libpthread.so.0...(no debugging symbols found)...done.

Loaded symbols for /lib64/libpthread.so.0

Reading symbols from /usr/java/jre1.6.0_19/lib/amd64/jli/libjli.so...(no debugging symbols found)...done.

Loaded symbols for /usr/java/jre1.6.0_19/bin/../lib/amd64/jli/libjli.so

Reading symbols from /lib64/libdl.so.2...(no debugging symbols found)...done.

Loaded symbols for /lib64/libdl.so.2

Reading symbols from /lib64/libc.so.6...(no debugging symbols found)...done.

Loaded symbols for /lib64/libc.so.6

Reading symbols from /lib64/ld-linux-x86-64.so.2...

(no debugging symbols found)...done.

Loaded symbols for /lib64/ld-linux-x86-64.so.2

Reading symbols from /usr/java/jre1.6.0_19/lib/amd64/server/libjvm.so...(no debugging symbols found)...done.

Loaded symbols for /usr/java/jre1.6.0_19/lib/amd64/server/libjvm.so

Reading symbols from /lib64/libm.so.6...(no debugging symbols found)...done.

Loaded symbols for /lib64/libm.so.6

Reading symbols from /lib64/librt.so.1...(no debugging symbols found)...done.

Loaded symbols for /lib64/librt.so.1

Reading symbols from /usr/java/jre1.6.0_19/lib/amd64/libverify.so...

(no debugging symbols found)...done.

Loaded symbols for /usr/java/jre1.6.0_19/lib/amd64/libverify.so

Reading symbols from /usr/java/jre1.6.0_19/lib/amd64/libjava.so...(no debugging symbols found)...done.

Loaded symbols for /usr/java/jre1.6.0_19/lib/amd64/libjava.so

Reading symbols from /lib64/libnsl.so.1...(no debugging symbols found)...done.

Loaded symbols for /lib64/libnsl.so.1

Reading symbols from /usr/java/jre1.6.0_19/lib/amd64/native_threads/libhpi.so...(no debugging symbols found)...done.

Loaded symbols for /usr/java/jre1.6.0_19/lib/amd64/native_threads/libhpi.so

Reading symbols from /lib64/libnss_files.so.2...

(no debugging symbols found)...done.

Loaded symbols for /lib64/libnss_files.so.2

Reading symbols from /usr/java/jre1.6.0_19/lib/amd64/libzip.so...(no debugging symbols found)...done.

Loaded symbols for /usr/java/jre1.6.0_19/lib/amd64/libzip.so

Reading symbols from /usr/java/jre1.6.0_19/lib/amd64/libnet.so...(no debugging symbols found)...done.

Loaded symbols for /usr/java/jre1.6.0_19/lib/amd64/libnet.so

Reading symbols from /usr/java/jre1.6.0_19/lib/amd64/librmi.so...(no debugging symbols found)...done.

Loaded symbols for /usr/java/jre1.6.0_19/lib/amd64/librmi.so

Reading symbols from /usr/java/jre1.6.0_19/lib/amd64/libnio.so...

(no debugging symbols found)...done.

Loaded symbols for /usr/java/jre1.6.0_19/lib/amd64/libnio.so

Reading symbols from /opt/nawg/lib/libheadercodecJNI.so...(no debugging symbols found)...done.

Loaded symbols for /opt/nawg/lib/libheadercodecJNI.so

Reading symbols from /opt/nawg/lib/libwpss_wsl.so.1...done.

Loaded symbols for /opt/nawg/lib/libwpss_wsl.so.1

Reading symbols from /opt/nawg/lib/libwpss_hc.so.2...done.

Loaded symbols for /opt/nawg/lib/libwpss_hc.so.2

Reading symbols from /opt/nawg/lib/libwss_wenc.so...done.

Loaded symbols for /opt/nawg/lib/libwss_wenc.so

Reading symbols from /usr/java/jre1.6.0_19/lib/amd64/libawt.so...done.

Loaded symbols for /usr/java/jre1.6.0_19/lib/amd64/libawt.so

Reading symbols from /usr/java/jre1.6.0_19/lib/amd64/headless/libmawt.so...done.

Loaded symbols for /usr/java/jre1.6.0_19/lib/amd64/headless/libmawt.so

Reading symbols from /opt/nawg/lib/libWIAwmlsencoder.so...done.

Loaded symbols for /opt/nawg/lib/libWIAwmlsencoder.so

Reading symbols from /opt/nawg/lib/libWIAhtml2xhtml.so...done.

Loaded symbols for /opt/nawg/lib/libWIAhtml2xhtml.so

Reading symbols from /opt/nawg/lib/libcapcodecJNI.so...done.

Loaded symbols for /opt/nawg/lib/libcapcodecJNI.so

Reading symbols from /opt/nawg/lib/libwpss.so.4...done.

Loaded symbols for /opt/nawg/lib/libwpss.so.4

Reading symbols from /opt/nawg/lib/libserverJNI.so...done.

Loaded symbols for /opt/nawg/lib/libserverJNI.so

Reading symbols from /opt/nawg/lib/libwpss_crypto.so.1...done.

Loaded symbols for /opt/nawg/lib/libwpss_crypto.so.1

Reading symbols from /opt/nawg/lib/libcrypto.so.0.9.8...done.

Loaded symbols for /opt/nawg/lib/libcrypto.so.0.9.8

Reading symbols from /usr/lib/oracle/10.2.0.2/client/lib/libocijdbc10.so...done.

Loaded symbols for /usr/lib/oracle/10.2.0.2/client/lib/libocijdbc10.so

Reading symbols from /usr/lib/oracle/10.2.0.2/client/lib/libclntsh.so.10.1...done.

Loaded symbols for /usr/lib/oracle/10.2.0.2/client/lib/libclntsh.so.10.1

Reading symbols from /usr/lib/oracle/10.2.0.2/client/lib/libnnz10.so...done.

Loaded symbols for /usr/lib/oracle/10.2.0.2/client/lib/libnnz10.so

Reading symbols from /usr/lib/oracle/10.2.0.2/client/lib/libociicus.so...done.

Loaded symbols for /usr/lib/oracle/10.2.0.2/client/lib/libociicus.so



Core was generated by `java -server -DWAPHOME=/opt/nawg/log/wps_var -DsystemRoot=/opt/nawg -DsystemBin'.

Program terminated with signal 6, Aborted.

[New process 12593]

[New process 22363]

【中间省略掉了】

[New process 11752]

[New process 11751]

#0  0x00002b08894f4215 in raise () from /lib64/libc.so.6



然后执行bt命令

(gdb)bt

#0  0x00002b08894f4215 in raise () from /lib64/libc.so.6

#1  0x00002b08894f5cc0 in abort () from /lib64/libc.so.6

#2  0x00002b0889df13d7 in os::abort () from /usr/java/jre1.6.0_19/lib/amd64/server/libjvm.so

#3  0x00002b0889f2a50d in VMError::report_and_die () from /usr/java/jre1.6.0_19/lib/amd64/server/libjvm.so

#4  0x00002b0889df74c1 in JVM_handle_linux_signal () from /usr/java/jre1.6.0_19/lib/amd64/server/libjvm.so

#5  0x00002b0889df3cfe in signalHandler () from /usr/java/jre1.6.0_19/lib/amd64/server/libjvm.so

#6  <signal handler called>

#7  0x00002aaaec5dd0bd in declex (yylval=<value optimized out>, DecParam=0x572dd840) at lex_dec.c:7997

#8  0x00002aaaec5e15c5 in decparse (DecParam=0x572dd840) at yacc_dec.c:1008

#9  0x00002aaaec5d4ff1 in HC_DecodeHeader (Context=0x564b62f0, WspHeader=<value optimized out>, WspHeaderLength=4096,

    ContentLength=0, HttpHeader=0x5636a390 "B$¨ÉB$: /r/n", HttpHeaderLength=0x43caa814) at hc_decoder.c:2517

#10 0x00002aaaec3b2dbe in Java_com_nokia_wap_filter_headercodec_HeaderCodec_cDecode ()

   from /opt/nawg/lib/libheadercodecJNI.so

#11 0x00002aaaab866058 in ?? ()

#12 0x0000000043caa8b0 in ?? ()

#13 0x0000000000000000 in ?? ()

(gdb)



从上面bt命令获取到的堆栈信息来看,可以清晰地看到问题所在的源代码的行数,即:

hc_decoder.c:2517



这样就便于分析和定位问题。
分享到:
评论

相关推荐

    linux coredump分析方法实例介绍

    通过实例来分析linux中如何定位coredump问题。非常实用

    coredump文件的生成与解析.docx

    本文模拟了除零错误发生时,嵌入式arm Linux平台生成的core文件,并在PC端采用arm-gdb解析该core文件,从中可以看出程序崩溃时的函数调用。

    Linux下core文件的使用方法详解

    通常在 Linux 下遇到程序异常退出或者中止,我们都会使用 core 文件进行分析,其中包含了程序运行时的内存,寄存器,堆栈指针等信息,格式为 ELF ,可以理解是程序工作当前状态转储成一个文件,通过工具分析这个文件...

    浅析Linux下core文件.doc

    对于内存异常及崩溃有很好丰分析作用!可以更好改善程序!

    Linux下发生段错误时如何产生core文件

    Linux下的C程序常常会因为内存访问错误等原因造成segment fault(段错误),此时如果系统core dump功能是打开的,那么将会有内存映像转储到硬盘上来,之后可以用gdb对core文件进行分析,还原系统发生段错误时刻的堆栈...

    Linux下数据库PostgreSQL分析与应用.pdf

    Linux下数据库PostgreSQL分析与应用.pdf

    linux下C++和Qt生成和调试Core文件(3)

    Core文件的作用是帮助程序员分析程序崩溃的原因,进行程序调试。 当程序崩溃时,Core文件中存储了进程的堆栈、寄存器、内存等信息。程序员可以使用调试工具如GDB来分析Core文件,以确定程序崩溃的原因。通过分析...

    linux core 收集和分析

    详细的介绍了如何收集linux的coredump,以及如何分析core文件。有图文说明,英文文档。

    关于linux下core dump【总结】

    一直在从事linux下后台开发,经常与core文件打交道。还记得刚开始从事linux下开发时,程序突然崩溃了,也没有任何日志。我不知所措,同事叫我看看core,我却问什么是core,怎么看。同事鄙视的眼神,我依然在目。后来...

    Linux中gdb查看core堆栈信息

    根据以上 的分析,你只要让编译器生成一个pch文件。也就是说把 stdafx.cpp(即指定/Yc的那个 cpp文件)从新编译一遍。当然你可以傻傻的 Rebuild All。简单一点就是选择那个cpp 文件,按一下Ctrl + F7就可以了。不然...

    使用GDB分析Android Crash问题

    通常情况下,corefile文件会包含了程序运行时的内存,寄存器状态,堆栈指针,内存管理信息还有各种函数调用堆栈信息等,我们可以理解为是程序工作当前状态存储生成的一个文件,许多的程序出错的时候都会产生一个core...

    批量获取linux服务器厂商/cpu/内存/磁盘/网卡等信息(适用于centos7系x86和arm架构)

    3、取回临时文件,解析各项参数 =====192.168.195.130服务器信息 【硬件厂商】 VMware, Inc. VMware Virtu^^^^^ 【系统内核】 3.10.0-1160.el7.x86_64 【系统版本】 CentOS Linux release 7.9 【CPU 信息】 c p u ...

    Linux日志分析小工具-GooLogAnalysis_v0.12

    使用Java技术完成,分析Linux登录日志,并将提取到的数据保存入数据库; 后续再通过SQL语句,导出报表;或使用视图,得到需要的分析结果; 看点:基本涉及CoreJava大部分的知识点; 难点:对象匹配方法equals()和...

    Linux系统管理技术手册 完整版

    本书延续了本书前一版以及《UNIX系统管理技术手册》的讲解风格,以当前主流的5种Linux发行版本(Red Hat ES、SUSE、Debian、Fedora Core和Ubuntu)为例,把Linux系统管理技术分为3个方面分别介绍。第1部分全面介绍了...

    浅析Linux下利用coredump技术追查进程崩溃原因

    如果系统开启了coredump,准确的说如果当前的shell环境开启了coredump,当前shell环境下的程序崩溃退出时,会把当时进程的栈的内存状态写入core文件。使用gdb可以查看这个core文件中保存的栈的状态,gdb a.out core...

    UNIX/Linux 系统管理技术手册(第四版)

     《UNIX/Linux系统管理技术手册(第四版)》延续了《Linux系统管理技术手册(第二版)》以及《UNIX系统管理技术手册(第三版)》的讲解风格,以当前主流...Linux发行版本(Red Hat ES、SUSE、Debian、Fedora Core和Ubuntu)为例...

    Linux系统管理技术手册(第二版).300dpi版.part3.rar

    本书延续了本书前一版以及《uMx系统管理技术手册》的讲解风格,以当前主流的5种Linux发行版本(RedHatES、SUSE、Debian、 FedoraCore和Ubuntu)为例,把Linux系统管理技术分为3个方面分别介绍。第1部分全面介绍了...

    ARM、MIPS、X86、PowerPC反汇编工具V2.0.3

    反汇编Linux/Windows OS运行的32位/64位程序/动态库文件,CPU类型:ARM PowerPC MIPS X86 操作菜单选择:文件解析 Alx+P ELF文件解析 Alt+E 另有CORE文件解调用栈、文本比较等功能。V2.0.3相对上一版本,完善ARM64、...

    linux 系统性能相关1.rar

     Linux 线程库性能测试与分析; 网卡软中断不能分发到CPU多核 问题的说明; Linux的实时性能测试.pdf  多核处理器上,怎样将软中断,内核线程绑定在指定的core上; LINUX上中断在各个CPU之间的负载平衡问题; 网卡...

Global site tag (gtag.js) - Google Analytics