------- Comment #1 from jojelino at gmail dot com  2010-01-08 17:50 -------
here is vtable dump for klass
as you can see , klass->engine of dynamic version is NULL 
whereas static version got proper instance though....
so klass->engine->verify(klass); invokes SEGV.......
but why does it happened??? some linker problem??
$ diff static dynamic -ud
--- static      2010-01-09 02:43:35.750000000 +0900
+++ dynamic     2010-01-09 02:43:36.187500000 +0900
@@ -1,23 +1,23 @@
 (gdb) print *klass
-$1 = (java::lang::Class) {
+$2 = (java::lang::Class) {
   <> = {<No data fields>},
   members of java::lang::Class:
   static class$ = {
     <> = {<No data fields>},
     members of java::lang::Class:
     static class$ = <same as static member of an already seen type>,
-    next_or_version = 0x0,
-    name = 0xe2e9f4,
+    next_or_version = 0x40062e08,
+    name = 0x6c7f70b4,
     accflags = 49,
-    superclass = 0xb5c900,
+    superclass = 0x6c587100,
     constants = {
       size = 37,
-      tags = 0xb5c180 "",
-      data = 0xb5c0e0
+      tags = 0x6c587580 "",
+      data = 0x6c5874e0
     },
     {
-      methods = 0xb5c1c0,
-      element_type = 0xb5c1c0
+      methods = 0x6c5875c0,
+      element_type = 0x6c5875c0
     },
     method_count = 82,
     vtable_method_count = 65,
@@ -26,15 +26,15 @@
 ---Type <return> to continue, or q <return> to quit---
     field_count = 0,
     static_field_count = 0,
-    vtable = 0xb5bf28,
+    vtable = 0x6c587328,
     otable = 0x0,
     otable_syms = 0x0,
     atable = 0x0,
     atable_syms = 0x0,
     itable = 0x0,
     itable_syms = 0x0,
-    catch_classes = 0xb5c828,
-    interfaces = 0xb5c840,
+    catch_classes = 0x6c587c28,
+    interfaces = 0x6c587c40,
     loader = 0x0,
     interface_count = 4,
     state = 1 '\001',
@@ -52,37 +52,37 @@
     hack_signers = 0x0,
     chain = 0x0,
     aux_info = 0x0,
-    engine = 0x1173040,
-    reflection_data = 0xe2ea20 "\001"
+    engine = 0x0,
+    reflection_data = 0x6c7f70e0 "\001"
   },
-  next_or_version = 0x0,
-  name = 0xdfea20,
+  next_or_version = 0x40062e08,
+  name = 0x6c8cb860,
   accflags = 1057,
-  superclass = 0xb5c900,
+  superclass = 0x6c587100,
   constants = {
     size = 24,
-    tags = 0xb1c838 "",
-    data = 0xb19d00
+    tags = 0x6c6a12d8 "",
+    data = 0x6c69e7a0
   },
   {
-    methods = 0xb1c860,
-    element_type = 0xb1c860
+    methods = 0x6c6a1300,
+    element_type = 0x6c6a1300
   },
   method_count = 37,
   vtable_method_count = 34,
-  fields = 0xb1cb60,
+  fields = 0x6c6a1600,
   size_in_bytes = 44,
   field_count = 13,
 ---Type <return> to continue, or q <return> to quit---
   static_field_count = 4,
-  vtable = 0xb13888,
+  vtable = 0x6c698328,
   otable = 0x0,
   otable_syms = 0x0,
   atable = 0x0,
   atable_syms = 0x0,
   itable = 0x0,
   itable_syms = 0x0,
-  catch_classes = 0xb1cc30,
+  catch_classes = 0x6c6a16d0,
   interfaces = 0x0,
   loader = 0x0,
   interface_count = 0,
@@ -101,6 +101,6 @@
 ---Type <return> to continue, or q <return> to quit---
   chain = 0x0,
   aux_info = 0x0,
-  engine = 0x1173040,
-  reflection_data = 0xdfea40 "\002"
+  engine = 0x0,
+  reflection_data = 0x6c8cb880 "\002"

\ No newline at end of file


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42658

Reply via email to