libgcj/8685: CNI Invocation of Java code from C++ example fails
tjmather@maxmind.com
tjmather@maxmind.com
Sat Nov 23 00:11:00 GMT 2002
>Number: 8685
>Category: libgcj
>Synopsis: CNI Invocation of Java code from C++ example fails
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: unassigned
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Fri Nov 22 17:16:01 PST 2002
>Closed-Date:
>Last-Modified:
>Originator: TJ Mather
>Release: gcc version 3.3 20021120 (experimental) (works fine on gcc 3.2 release)
>Organization:
>Environment:
Linux 2.4.18 (Mandrake 9.0rc3)
>Description:
// output from gdb
(gdb) run
Starting program: /home/tjmather/poifilter-0.01/a.out
Program received signal SIGSEGV, Segmentation fault.
0x4094fa73 in strlen () from /lib/i686/libc.so.6
(gdb) bt
#0 0x4094fa73 in strlen () from /lib/i686/libc.so.6
#1 0x403a86f4 in java::lang::Runtime::insertSystemProperties(java::util::Properties*) (
newprops=0x406582e0) at gcj/cni.h:64
#2 0x403bec47 in java.lang.Runtime.__U3c_clinit__U3e_() () at java/lang/Runtime.java:111
#3 0x403a2239 in java::lang::Class::initializeClass() (this=0x406582e0) at java/lang/natClass.cc:786
#4 0x40546fac in _Jv_InitClass (klass=0x0) at java/lang/Class.h:257
#5 0x403c73b8 in java.lang.System.__U3c_clinit__U3e_() () at java/lang/System.java:82
#6 0x403a2239 in java::lang::Class::initializeClass() (this=0x8049c40) at java/lang/natClass.cc:786
#7 0x40546fac in _Jv_InitClass (klass=0x0) at java/lang/Class.h:257
#8 0x403c6ca8 in java.lang.System.getProperty(java.lang.String) (key=0x1) at java/lang/System.java:366
#9 0x403c9f42 in java.lang.Throwable.__U3c_clinit__U3e_() () at java/lang/Throwable.java:403
#10 0x403a2239 in java::lang::Class::initializeClass() (this=0x8049c40) at java/lang/natClass.cc:786
#11 0x403a2275 in java::lang::Class::initializeClass() (this=0x8049c40) at java/lang/Class.h:257
#12 0x403a2275 in java::lang::Class::initializeClass() (this=0x8049c40) at java/lang/Class.h:257
#13 0x403a2275 in java::lang::Class::initializeClass() (this=0x8049c40) at java/lang/Class.h:257
#14 0x403829f1 in _Jv_AllocObjectNoFinalizer (klass=0x8049c40, size=20) at java/lang/Class.h:257
#15 0x40382a2c in _Jv_AllocObject (klass=0x1, size=0) at prims.cc:394
#16 0x40383923 in _Jv_CreateJavaVM(void*) () at prims.cc:916
#17 0x08048917 in JvCreateJavaVM(void*) ()
#18 0x08048820 in main ()
#19 0x408f3082 in __libc_start_main () from /lib/i686/libc.so.6
>How-To-Repeat:
Use latest GCC/libgcj CVS, then run (see below for test.cc)
$ c++ test.cc -lgcj
$ ./a.out
Segmentation fault
// test.cc
#include <gcj/cni.h>
#include <java/lang/System.h>
#include <java/io/PrintStream.h>
#include <java/lang/Throwable.h>
int main(int argc, char *argv)
{
using namespace java::lang;
try
{
JvCreateJavaVM(NULL);
JvAttachCurrentThread(NULL, NULL);
String *message = JvNewStringLatin1("Hello from C++");
JvInitClass(&System::class$);
System::out->println(message);
JvDetachCurrentThread();
}
catch (Throwable *t)
{
System::err->println(JvNewStringLatin1("Unhandled Java exception:"));
t->printStackTrace();
}
}
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the Gcc-bugs
mailing list