java.lang.reflect.Proxy.java

Richard Emberson emberson@phc.net
Wed Dec 5 10:36:00 GMT 2001


The code for this runtime error was include earlier.
Can not try: printf "%s\n", klass->name->data
because klass is ill defined.
256 ClassFactory cf = new ClassFactory(data);
(gdb) s
_Jv_AllocObject (klass=0x80530a0, size=24)
 at ../../../gcc/libjava/java/lang/Class.h:246
246 if (__builtin_expect (klass->state == JV_STATE_DONE, true))
Current language: auto; currently c++
(gdb) n
248 klass->initializeClass ();
(gdb) s
java::lang::Class::initializeClass() (this=0x80530a0)
 at ../../../gcc/libjava/java/lang/natClass.cc:673
673 if (state == JV_STATE_DONE)
(gdb) s
677 _Jv_MonitorEnter (this);
(gdb) n
679 if (state < JV_STATE_LINKED)
(gdb) s
_Jv_IsInterpretedClass(java::lang::Class*) (c=0x80530a0)
 at ../../../gcc/libjava/include/java-interp.h:31
31 return (c->loader != 0);
(gdb) s
32 }
(gdb) s
_Jv_IsInterpretedClass(java::lang::Class*) (c=0x80530a0)
 at ../../../gcc/libjava/include/java-interp.h:31
31 return (c->loader != 0);
(gdb) s
32 }
(gdb) s
java::lang::Class::initializeClass() (this=0x80530a0)
 at ../../../gcc/libjava/java/lang/natClass.cc:692
692 _Jv_PrepareCompiledClass (this);
(gdb) s
_Jv_PrepareCompiledClass(java::lang::Class*) (klass=0x80530a0)
 at ../../../gcc/libjava/java/lang/natClassLoader.cc:247
247 if (klass->state >= JV_STATE_LINKED)
(gdb) printf "%s\n", klass->name->data
Value can't be converted to integer.
(gdb) s
251 klass->state = JV_STATE_LINKED;
(gdb) s
253 _Jv_Constants *pool = &klass->constants;
(gdb) p *klass
Value can't be converted to integer.
(gdb) printf "%s\n", klass->name->data
Value can't be converted to integer.
(gdb) p *pool
1ドル = {size = 134678400, tags = 0x2 <Address 0x2 out of bounds>,
 data = 0x80533c0}
(gdb) where
#0 _Jv_PrepareCompiledClass(java::lang::Class*) (klass=0x80530a0)
 at ../../../gcc/libjava/java/lang/natClassLoader.cc:253
#1 0x401c8a95 in java::lang::Class::initializeClass() (this=0x80530a0)
 at ../../../gcc/libjava/java/lang/natClass.cc:692
#2 0x401a8ea6 in _Jv_AllocObject (klass=0x80530a0, size=24)
 at ../../../gcc/libjava/java/lang/Class.h:248
#3 0x0804a9b5 in
java::lang::reflect::Proxy::getProxyClass(java::lang::ClassLoader*,
JArray<java::lang::Class*>*) (loader=0x0, interfaces=0x8068f78)
 at ./Proxy.java:256
#4 0x0804ac15 in
java::lang::reflect::Proxy::newProxyInstance(java::lang::ClassLoader*,
JArray<java::lang::Class*>*, java::lang::reflect::InvocationHandler*)
 (loader=0x0, interfaces=0x8068f90, handler=0x806ffd8) at
./Proxy.java:325
#5 0x0804fe36 in Main::main(JArray<java::lang::String*>*)
(args=0x8074fe0)
 at ./Main.java:27
#6 0x401c5298 in gnu::gcj::runtime::FirstThread::call_main()
(this=0x80c3fc0)
 at ../../../gcc/libjava/gnu/gcj/runtime/natFirstThread.cc:46
#7 0x4024b908 in gnu.gcj.runtime.FirstThread.run() (this=0x80c3fc0)
 at ../../../gcc/libjava/gnu/gcj/runtime/FirstThread.java:54
#8 0x401d209c in _Jv_ThreadRun(java::lang::Thread*) (thread=0x80c3fc0)
 at ../../../gcc/libjava/java/lang/natThread.cc:285
#9 0x401a9e94 in _Jv_RunMain(java::lang::Class*, char const*, int, char
const**, bool) (klass=0x80531c0, name=0x0, argc=1, argv=0xbffff894,
is_jar=false)
 at ../../../gcc/libjava/prims.cc:1021
#10 0x401a9fed in JvRunMain (klass=0x80531c0, argc=1, argv=0xbffff894)
 at ../../../gcc/libjava/prims.cc:1031
#11 0x0804a754 in main (argc=1, argv=0xbffff894) at /tmp/cc6LBbg4.i:11
#12 0x4055c627 in __libc_start_main (main=0x804a720 <main>, argc=1,
 ubp_av=0xbffff894, init=0x804a114 <_init>, fini=0x8050458 <_fini>,
 rtld_fini=0x4000dcd4 <_dl_fini>, stack_end=0xbffff88c)
 at ../sysdeps/generic/libc-start.c:129
(gdb)
Bryce McKinlay wrote:
> Richard Emberson wrote:
>> >Well, I tried to use the Proxy.java class and gcj does compile it but
it
> >dies during execution ...
> >and I think the error I am running into is in gcj. Include is a zip
file of
> >the code and
> >here is the gdb session:
> >
> > b natClass.cc:692
> >Breakpoint 5, java::lang::Class::initializeClass() (this=0x8053160)
> > at ../../../gcc/libjava/java/lang/natClass.cc:692
> >692 _Jv_PrepareCompiledClass (this);
> >Current language: auto; currently c++
> >(gdb) s
> >_Jv_PrepareCompiledClass(java::lang::Class*) (klass=0x8053160)
> > at ../../../gcc/libjava/java/lang/natClassLoader.cc:247
> >247 if (klass->state >= JV_STATE_LINKED)
> >
>> Try typing
>> printf "%s\n", klass->name->data
>> at this point in GDB. Presumably the class that initializeClass() is
> failing on is the proxy that just got created? In any case I suspect
its
> probibly a bug elsewhere in the runtime rather than a bug in the
compiler.
>> regards
>> Bryce.



More information about the Java mailing list

AltStyle によって変換されたページ (->オリジナル) /