This is the mail archive of the java@gcc.gnu.org mailing list for the Java project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: java.lang.reflect.Proxy.java


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]