[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
gdb gets SIGSEGV from JVM in JDK 1.3.1_01 on RedHat Linux 6.2
From: |
Eddie Ruvinsky |
Subject: |
gdb gets SIGSEGV from JVM in JDK 1.3.1_01 on RedHat Linux 6.2 |
Date: |
Fri, 2 Nov 2001 15:49:47 -0800 (PST) |
Hello all,
I am using gdb-4.18-11 for the following bug
description. Note that the bug only occurs when using
gdb, so I suspect that it could be a gdb problem. See
below.
Any comments/suggestions are appreciated.
Thanks in advance!
_________________
OVERVIEW:
When running Tomcat 4.0 via the Java launcher in a gdb
debugging session (Red Hat Linux 6.2), I get a SIGSEGV
signal (Segmentation fault) when I execute some of the
example JSPs/servlets. Since Tomcat is pure Java, I'm
assuming the problem is most likely with the JVM and
the way it handles signals, or possibly with gdb since
I only see this behavior with gdb. The problem is
fairly reproducible; I usually get it when I execute
the "ErrorPage" JSP sample in Tomcat's "examples"
webapp.
Note that I don't see these signals when running the
JVM standalone (outside of gdb). What's also weird is
that I successfully tell gdb to "continue" after the
segfault, and the app continues to work like nothing
ever happend.
As an aside, the reason why I did this test was
because I was experiencing very similar problems in my
own application that embeds a JVM via JNI.
DESCRIPTION:
Here is what I did to see the problem.
First, I set the debugger in the environment, so that
the jdk/bin/java script can run the java launcher in
gdb:
export DEBUG_PROG=gdb
Next, I run the jdk/bin/java script:
cd jdk1.3.1_01/bin
java
This brings up the Java launcher within gdb, and I run
it as I specify the necessary arguments to startup
Tomcat:
GNU gdb 19991004
Copyright 1998 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"...
(gdb) set args -classpath
/u0/ruvinsky/tomcat4.bin/bin/bootstrap.jar:/u0/ruvinsky/src-java-launcher/jdk1.3.1_01/lib/tools.jar
-Dcatalina.base=/u0/ruvinsky/tomcat4.bin
-Dcatalina.home=/u0/ruvinsky/tomcat4.bin
org.apache.catalina.startup.Bootstrap start
(gdb) run
Starting program:
/u0/ruvinsky/src-java-launcher/jdk1.3.1_01/bin/i386/native_threads/java
-classpath
/u0/ruvinsky/tomcat4.bin/bin/bootstrap.jar:/u0/ruvinsky/src-java-launcher/jdk1.3.1_01/lib/tools.jar
-Dcatalina.base=/u0/ruvinsky/tomcat4.bin
-Dcatalina.home=/u0/ruvinsky/tomcat4.bin
org.apache.catalina.startup.Bootstrap start
[New Thread 1710 (manager thread)]
[New Thread 1709 (initial thread)]
[New Thread 1711]
[New Thread 1712]
[New Thread 1713]
[New Thread 1714]
[New Thread 1715]
[New Thread 1716]
[New Thread 1717]
Starting service Tomcat-Standalone
Apache Tomcat/4.0
[New Thread 1720]
[New Thread 1721]
[New Thread 1722]
[New Thread 1723]
[New Thread 1724]
[New Thread 1725]
[New Thread 1726]
[New Thread 1727]
[New Thread 1728]
[New Thread 1729]
[New Thread 1730]
[New Thread 1731]
Starting service Tomcat-Apache
Apache Tomcat/4.0
[New Thread 1732]
[Switching to Thread 1730]
Program received signal SIGSEGV, Segmentation fault.
0x2bfee3f4 in ?? ()
(gdb) continue
Continuing.
I even tried building a debug version of the java
launcher by hand in hope of finding a more detailed
stack trace, but all I got was the following:
(gdb) bt
#0 0x806973d in ?? ()
#1 0x8060891 in ?? ()
#2 0x8060891 in ?? ()
#3 0x8060963 in ?? ()
#4 0x8060891 in ?? ()
#5 0x8060891 in ?? ()
#6 0x8060891 in ?? ()
#7 0x8060963 in ?? ()
#8 0x8060891 in ?? ()
#9 0x8060891 in ?? ()
#10 0x8060963 in ?? ()
#11 0x8060891 in ?? ()
#12 0x8060963 in ?? ()
#13 0x8060963 in ?? ()
#14 0x8060963 in ?? ()
#15 0x8060963 in ?? ()
#16 0x8060963 in ?? ()
#17 0x8060891 in ?? ()
#18 0x8060963 in ?? ()
#19 0x8060891 in ?? ()
#20 0x8060963 in ?? ()
#21 0x8060963 in ?? ()
#22 0x8060963 in ?? ()
#23 0x8060963 in ?? ()
#24 0x8060891 in ?? ()
#25 0x8060963 in ?? ()
#26 0x8060963 in ?? ()
#27 0x8060963 in ?? ()
#28 0x8060891 in ?? ()
#29 0x8060963 in ?? ()
#30 0x8060963 in ?? ()
#31 0x8060891 in ?? ()
#32 0x8060963 in ?? ()
#33 0x2add3d70 in StubRoutines::_code1 ()
from
/u0/ruvinsky/src-java-launcher/jdk1.3.1_01/jre/lib/i386/client/libjvm.so
#34 0x2abcb604 in JavaCalls::call_helper ()
from
/u0/ruvinsky/src-java-launcher/jdk1.3.1_01/jre/lib/i386/client/libjvm.so
#35 0x2ac2948d in os::os_exception_wrapper ()
from
/u0/ruvinsky/src-java-launcher/jdk1.3.1_01/jre/lib/i386/client/libjvm.so
#36 0x2abcb840 in JavaCalls::call ()
from
/u0/ruvinsky/src-java-launcher/jdk1.3.1_01/jre/lib/i386/client/libjvm.so
#37 0x2abcb1bb in JavaCalls::call_virtual ()
from
/u0/ruvinsky/src-java-launcher/jdk1.3.1_01/jre/lib/i386/client/libjvm.so
#38 0x2abcbccb in JavaCalls::call_virtual ()
from
/u0/ruvinsky/src-java-launcher/jdk1.3.1_01/jre/lib/i386/client/libjvm.so
#39 0x2abede80 in thread_entry ()
from
/u0/ruvinsky/src-java-launcher/jdk1.3.1_01/jre/lib/i386/client/libjvm.so
#40 0x2ac599c7 in JavaThread::thread_main_inner ()
from
/u0/ruvinsky/src-java-launcher/jdk1.3.1_01/jre/lib/i386/client/libjvm.so
#41 0x2ac56903 in JavaThread::run ()
from
/u0/ruvinsky/src-java-launcher/jdk1.3.1_01/jre/lib/i386/client/libjvm.so
#42 0x2ac27e73 in _start ()
from
/u0/ruvinsky/src-java-launcher/jdk1.3.1_01/jre/lib/i386/client/libjvm.so
#43 0x2aacc535 in pthread_start_thread
(arg=0x7d3ffe40) at manager.c:241
(gdb) info shared
>From To Syms Read Shared Object
Library
0x2aac7000 0x2aad8ad8 Yes
/lib/libpthread.so.0
0x2aad9000 0x2aae2e38 Yes
/u0/ruvinsky/src-java-launcher/jdk1.3.1_01/jre/lib/i386/native_threads/libhpi.so
0x2aae3000 0x2addce90 Yes
/u0/ruvinsky/src-java-launcher/jdk1.3.1_01/jre/lib/i386/client/libjvm.so
0x2addd000 0x2addfd0c Yes /lib/libdl.so.2
0x2ade1000 0x2aed537c Yes /lib/libc.so.6
0x2aed6000 0x2aeeb1c8 Yes /lib/libnsl.so.1
0x2aeec000 0x2af08098 Yes /lib/libm.so.6
0x2af09000 0x2af4af90 Yes
/usr/lib/libstdc++-libc6.1-1.so.2
0x2aaab000 0x2aabecb0 Yes /lib/ld-linux.so.2
0x2af4b000 0x2af5d414 Yes
/u0/ruvinsky/src-java-launcher/jdk1.3.1_01/jre/lib/i386/libverify.so
0x2af5e000 0x2af81fe8 Yes
/u0/ruvinsky/src-java-launcher/jdk1.3.1_01/jre/lib/i386/libjava.so
0x2af82000 0x2af98360 Yes
/u0/ruvinsky/src-java-launcher/jdk1.3.1_01/jre/lib/i386/libzip.so
0x340c6000 0x340ce9a0 Yes
/lib/libnss_files.so.2
0x340cf000 0x340d8fb4 Yes
/lib/libnss_nisplus.so.2
0x340d9000 0x340e21f8 Yes
/lib/libnss_nis.so.2
0x343e9000 0x343f242c Yes
/u0/ruvinsky/src-java-launcher/jdk1.3.1_01/jre/lib/i386/libnet.so
0x343fa000 0x343fd850 Yes
/lib/libnss_dns.so.2
0x3497f000 0x3498d9fc Yes
/lib/libresolv.so.2
As a reference, I built the Java launcher code
included in the JDK 1.3.1_01 distribution, producing
the replacement binary for:
jdk1.3.1_01/bin/i386/native_threads/java
I copied the source files out of the
jdk1.3.1_01/src/src/launcher/ directory, and they
consist of the following files:
java.c
java.h
java_md.c
java_md.h
My build directory also contains the jdk1.3.1_01
subdirectory to include the JNI headers from and as a
sample jdk to test the build output with.
The following are my build commands (mainly borrowed
from the JDK build process):
cc -g -W -Wall -Werror -Wno-unused -Wno-parentheses
-Di386 -DARCH='"i386"' -DSOLARIS2
-DRELEASE='"1.3.1-testing-110101"'
-DFULL_VERSION='"1.3.1-testing-110101"'
-D_LARGEFILE64_SOURCE -D_GNU_SOURCE -D_REENTRANT
-D_LITTLE_ENDIAN -DUSE_APPHOME -DPROGNAME='"java"'
-I./jdk1.3.1_01/include -I./jdk1.3.1_01/include/linux
-c -o build/objs/java.o java.c
cc -g -W -Wall -Werror -Wno-unused -Wno-parentheses
-Di386 -DARCH='"i386"' -DSOLARIS2
-DRELEASE='"1.3.1-testing-110101"'
-DFULL_VERSION='"1.3.1-testing-110101"'
-D_LARGEFILE64_SOURCE -D_GNU_SOURCE -D_REENTRANT
-D_LITTLE_ENDIAN -DUSE_APPHOME -DPROGNAME='"java"'
-I./jdk1.3.1_01/include -I./jdk1.3.1_01/include/linux
-c -o build/objs/java_md.o java_md.c
cc -o jdk1.3.1/bin/i386/native_threads/java -z defs
-Ljdk1.3.1_01/jre/lib/i386/native_threads
-Ljdk1.3.1_01/jre/lib/i386/classic build/objs/java.o
build/objs/java_md.o -lpthread -lhpi -ljvm -ldl -lc
__________________________________________________
Do You Yahoo!?
Find a job, post your resume.
http://careers.yahoo.com
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- gdb gets SIGSEGV from JVM in JDK 1.3.1_01 on RedHat Linux 6.2,
Eddie Ruvinsky <=