[patch] Fix oddity in personality routine
Jack Howarth
howarth@bromo.med.uc.edu
Tue Dec 1 05:02:00 GMT 2009
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
More information about the Java
mailing list