gdb이용한 core 파일 분석방법
작성자 관리자 작성시간 2011-11-17 05:05:15
 

○ core dump를 분석 하는법

1) ps -ef | grep java 를 통해서 java process의 path를 찾아낸다.

example)
bwcho 21085 1 181 10:01:14 pts/ta 0:16 /opt/java/jre/bin/../bin/PA_RISC2.0/native_threads/java -

2) core file이 있는 디렉토리를 이용해서 gdb를 수행한다.

gdb "1)에서 얻은 java경로" "corefile명"

example)
gdb /opt/java/jre/bin/../bin/PA_RISC2.0/native_threads/java core

3) gdb에 들어와서 where문을 친다.

/user3/bwcho/bea/wlserver6.1 > gdb /opt/java/jre/bin/../bin/PA_RISC2.0/native_threads/java core
Wildebeest is free software and you are welcome to distribute copies of
it under certain conditions; type "show copying" to see the conditions.
There is absolutely no warranty for Wildebeest; type "show warranty"
for details.

Hewlett-Packard Wildebeest 1.0 (based on GDB 4.16)
(built for PA-RISC 1.1 or 2.0 (narrow), HP-UX 11.00)
Copyright 1996, 1997 Free Software Foundation, Inc...
Core was generated by `java'.
Program terminated with signal 6, Aborted.

warning: The shared libraries were not privately mapped; setting a
breakpoint in a shared library will not work until you rerun the program.

#0 0xc01eb948 in kill () from /usr/lib/libc.2
#0 0xc01eb948 in kill () from /usr/lib/libc.2
(gdb) where
#0 0xc01eb948 in kill () from /usr/lib/libc.2
#1 0xc01857e8 in _raise () from /usr/lib/libc.2
#2 0xc01c9690 in _abort_C () from /usr/lib/libc.2
#3 0xc01c9714 in abort () from /usr/lib/libc.2
#4 0xc516f3c8 in os::abort () from /opt/java/jre/bin/../lib/PA_RISC2.0/server/libjvm.sl
#5 0xc51681b0 in os::handle_unexpected_exception () from /opt/java/jre/bin/../lib/PA_RISC2.0/server/libjvm.sl
#6 0xc517168c in os::Hpux::JVM_handle_hpux_signal () from /opt/java/jre/bin/../lib/PA_RISC2.0/server/libjvm.sl
#7 0xc516e434 in os::Hpux::signalHandler () from /opt/java/jre/bin/../lib/PA_RISC2.0/server/libjvm.sl
#8 <signal handler called>
#9 0xc51d7c2c in typeArrayKlass::copy_array () from /opt/java/jre/bin/../lib/PA_RISC2.0/server/libjvm.sl
#10 0xc50f11d8 in JVM_RawMonitorEnter () from /opt/java/jre/bin/../lib/PA_RISC2.0/server/libjvm.sl
#11 0xc19f16bc in ZIP_Read () from /opt/java/jre/bin/../lib/PA_RISC2.0/libzip.sl
#12 0xc19e5fdc in zipFileReadWork () from /opt/java/jre/bin/../lib/PA_RISC2.0/libzip.sl
#13 0xc19e6120 in zipFileReadOnStack () from /opt/java/jre/bin/../lib/PA_RISC2.0/libzip.sl
#14 0xc19e61fc in Java_java_util_zip_ZipFile_read () from /opt/java/jre/bin/../lib/PA_RISC2.0/libzip.sl
#15 0x5d010 in ?? ()
#16 0xc01857e8 in _raise () from /usr/lib/libc.2
(gdb)

stack의 내용을 추적하여 JVM문제인지 JNI나 기타 특정 모듈의 문제인지를 분석할 수 있으며
분석이 불가할 경우에는 이 내용을 JVM vendor에 보내면 core dump의 원인을 분석할 수 있다.

아니면 이 게시판에 올리세요.. ^^


목록 | 입력 | 수정 | 답변 | 삭제