Re: [patch] Fix oddity in personality routine
Jack Howarth <[email protected]>
| Newsgroups | gmane.comp.gcc.java.devel |
|---|---|
| Message-ID | <[email protected]> |
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