This is the mail archive of the
java@gcc.gnu.org
mailing list for the Java project.
Re: [patch] Fix oddity in personality routine
- From: Jack Howarth <howarth at bromo dot med dot uc dot edu>
- To: Andrew Haley <aph at redhat dot com>
- Cc: borlum <thomas at borlum dot dk>, java at gcc dot gnu dot org
- Date: Tue, 1 Dec 2009 00:01:57 -0500
- Subject: Re: [patch] Fix oddity in personality routine
- References: <26540588.post@talk.nabble.com> <4B0FAC91.5030401@redhat.com> <20091127215118.GA6568@bromo.med.uc.edu> <4B10FECE.8010600@redhat.com> <20091129174835.GB13043@bromo.med.uc.edu> <4B12B6D9.5050008@redhat.com> <20091129184804.GA13502@bromo.med.uc.edu> <4B1399CD.9070401@redhat.com> <20091130160125.GA25831@bromo.med.uc.edu> <4B13EDB1.9090102@redhat.com>
Andrew,
I have uploaded a bz2 archive of the walk from the
last _Unwind_RaiseException breakpoint before the crash
up to the crash to PR41991. The crash appears at...
_Jv_GetMethodLocal (klass=0x104a298c0, name=0x104af13a0, signature=0x104b1dfe0) at ../../../gcc-4.5-20091128/libjava/java/lang/natClass.cc:1633
1633 && _Jv_equalUtf8Consts (signature, klass->methods[i].signature))
(gdb)
_Jv_equalUtf8Consts (a=0x104b1dfe0, b=0x1048262c0) at ../../../gcc-4.5-20091128/libjava/prims.cc:209
209 if (a == b)
(gdb)
210 return true;
(gdb)
209 if (a == b)
(gdb)
211 if (a->hash != b->hash)
(gdb)
212 return false;
(gdb)
211 if (a->hash != b->hash)
(gdb)
214 if (b->length != len)
(gdb)
218 len = (len + 1) >> 1;
(gdb)
216 aptr = (const _Jv_ushort *)a->data;
(gdb)
217 bptr = (const _Jv_ushort *)b->data;
(gdb)
218 len = (len + 1) >> 1;
(gdb)
219 while (--len >= 0)
(gdb)
220 if (*aptr++ != *bptr++)
(gdb)
219 while (--len >= 0)
(gdb)
220 if (*aptr++ != *bptr++)
(gdb)
219 while (--len >= 0)
(gdb)
220 if (*aptr++ != *bptr++)
(gdb)
219 while (--len >= 0)
(gdb)
220 if (*aptr++ != *bptr++)
(gdb)
219 while (--len >= 0)
(gdb)
220 if (*aptr++ != *bptr++)
(gdb)
219 while (--len >= 0)
(gdb)
220 if (*aptr++ != *bptr++)
(gdb)
219 while (--len >= 0)
(gdb)
220 if (*aptr++ != *bptr++)
(gdb)
219 while (--len >= 0)
(gdb)
220 if (*aptr++ != *bptr++)
(gdb)
219 while (--len >= 0)
(gdb)
220 if (*aptr++ != *bptr++)
(gdb)
219 while (--len >= 0)
(gdb)
220 if (*aptr++ != *bptr++)
(gdb)
219 while (--len >= 0)
(gdb)
220 if (*aptr++ != *bptr++)
(gdb)
219 while (--len >= 0)
(gdb)
222 return true;
(gdb)
223 }
(gdb)
_Jv_GetMethodLocal (klass=0x104a298c0, name=0x104af13a0, signature=0x104b1dfe0) at ../../../gcc-4.5-20091128/libjava/java/lang/natClass.cc:1632
1632 if (_Jv_equalUtf8Consts (name, klass->methods[i].name)
(gdb)
1634 return &klass->methods[i];
(gdb)
1637 }
(gdb)
_Jv_LookupDeclaredMethod (klass=0x104a298c0, name=0x104af13a0, signature=0x104b1dfe0, declarer_result=0x0) at ../../../gcc-4.5-20091128/libjava/java/lang/natClass.cc:1648
1648 if (meth)
(gdb)
1650 if (declarer_result)
(gdb)
1657 }
(gdb)
gnu::java::lang::MainThread::call_main (this=0x104875dc0) at ../../../gcc-4.5-20091128/libjava/gnu/java/lang/natMainThread.cc:41
41 if (meth == NULL)
(gdb)
37 main_signature);
(gdb)
41 if (meth == NULL)
(gdb)
43 else if (! ::java::lang::reflect::Modifier::isStatic(meth->accflags))
(gdb)
_ZN4java4lang7reflect8Modifier8isStaticEJbi (mod=9) at Modifier.java:268
268 return (mod & STATIC) != 0;
(gdb)
_ZN4java4lang7reflect8Modifier8isStaticEJbi (mod=9) at Modifier.java:268
268 return (mod & STATIC) != 0;
(gdb)
0x0000000100994af0 in dyld_stub__Jv_InitClass () at RowSetEvent.java:51
51 RowSetEvent.java: No such file or directory.
in RowSetEvent.java
(gdb)
_Jv_InitClass (klass=0x10168ce40) at Class.h:740
740 if (__builtin_expect (klass->state == JV_STATE_DONE, true))
(gdb)
743 }
(gdb)
0x00000001004168bf in _ZN4java4lang7reflect8Modifier8isStaticEJbi (mod=9) at Modifier.java:268
268 return (mod & STATIC) != 0;
(gdb)
gnu::java::lang::MainThread::call_main (this=0x104875dc0) at ../../../gcc-4.5-20091128/libjava/gnu/java/lang/natMainThread.cc:44
44 msg = "`main' must be static";
(gdb)
43 else if (! ::java::lang::reflect::Modifier::isStatic(meth->accflags))
(gdb)
45 else if (! ::java::lang::reflect::Modifier::isPublic(meth->accflags))
(gdb)
_ZN4java4lang7reflect8Modifier8isPublicEJbi (mod=9) at Modifier.java:258
258 return (mod & PUBLIC) != 0;
(gdb)
_ZN4java4lang7reflect8Modifier8isPublicEJbi (mod=9) at Modifier.java:258
258 return (mod & PUBLIC) != 0;
(gdb)
0x0000000100994af0 in dyld_stub__Jv_InitClass () at RowSetEvent.java:51
51 RowSetEvent.java: No such file or directory.
in RowSetEvent.java
(gdb)
_Jv_InitClass (klass=0x10168ce40) at Class.h:740
740 if (__builtin_expect (klass->state == JV_STATE_DONE, true))
(gdb)
743 }
(gdb)
0x00000001004168df in _ZN4java4lang7reflect8Modifier8isPublicEJbi (mod=9) at Modifier.java:258
258 return (mod & PUBLIC) != 0;
(gdb)
gnu::java::lang::MainThread::call_main (this=0x104875dc0) at ../../../gcc-4.5-20091128/libjava/gnu/java/lang/natMainThread.cc:46
46 msg = "`main' must be public";
(gdb)
45 else if (! ::java::lang::reflect::Modifier::isPublic(meth->accflags))
(gdb)
54 (*real_main) (args);
(gdb)
Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_PROTECTION_FAILURE at address: 0x0000000103f05db0
0x0000000103f05db0 in ?? () at RowSetEvent.java:51
51 RowSetEvent.java: No such file or directory.
in RowSetEvent.java
(gdb)
A backtrace only shows...
(gdb) bt
#0 0x0000000103f05db0 in ?? () at RowSetEvent.java:51
#1 0x00000001000485be in gnu::java::lang::MainThread::call_main (this=0x104875dc0) at ../../../gcc-4.5-20091128/libjava/gnu/java/lang/natMainThread.cc:54
Previous frame inner to this frame (gdb could not unwind past this frame)
Let me know if you have any suggestions for debugging this further.
Jack