[Mono-bugs] [Bug 462016] make check for pinvoke2.exe fails for PowerPC

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Tue Dec 23 12:33:40 EST 2008


https://bugzilla.novell.com/show_bug.cgi?id=462016

User munroesj at us.ibm.com added comment
https://bugzilla.novell.com/show_bug.cgi?id=462016#c1





--- Comment #1 from Steven Munroe <munroesj at us.ibm.com>  2008-12-23 10:33:38 MST ---
Additoinal debug shows that in class.c:mono_class_init line 3611 the
class->inteface_count has a bogus value of 1536 and ->name="". While the
gklass->interface_count=0 and ->name="Tests".

This looks a memory clobber. In gdb *class:

(gdb) print *class
$3 = {element_class = 0x20960080, cast_class = 0x6000009,
  supertypes = 0x102a20c8, idepth = 4143, rank = 3 '\003',
  instance_size = -135919937, inited = 0, init_pending = 1, size_inited = 0,
  valuetype = 0, enumtype = 0, blittable = 0, unicode = 0, wastypebuilder = 0,
  min_align = 3 '\003', packing_size = 15, ghcimpl = 1, has_finalize = 1,
  marshalbyref = 1, contextbound = 1, delegate = 1, gc_descr_inited = 1,
  has_cctor = 1, has_references = 1, has_static_refs = 1,
  no_special_static_fields = 1, is_com_object = 1, nested_classes_inited = 1,
  simd_type = 0, exception_type = 189 '�', parent = 0x1040006,
  nested_in = 0x20960080, nested_classes = 0x600000a, image = 0x102a20c8,
  name = 0x1033c6a0 "",
  name_space = 0xf7e606dc "mono_test_marshal_bool_byref",
  enum_basetype = 0x3ffff, declsec_flags = 264064832, type_token = 16777223,
  vtable_size = 546701440, interface_count = 1536, interface_id = 11,
  max_interface_id = 4138, interface_offsets_count = 8392,
  interfaces_packed = 0x1033c7d0, interface_offsets_packed = 0xf7e606fd,
  interface_bitmap = 0x3ffff <Address 0x3ffff out of bounds>,
  interfaces = 0xfbd4f60, sizes = {class_size = 16777224,
    element_size = 16777224, generic_param_token = 16777224},
  flags = 546701440, field = {first = 0, count = 1}, method = {first = 0,
    count = 152}, property = {first = 262143, count = 264064864}, event = {
    first = 16777225, count = 546701440}, marshal_info = 0x600000d,
  fields = 0x102a20c8, properties = 0x1033c8d0, events = 0xf7e6076d,
  methods = 0x3ffff, this_arg = {data = {klass = 0xfbd4f80, type = 0xfbd4f80,
      array = 0xfbd4f80, method = 0xfbd4f80, generic_param = 0xfbd4f80,
      generic_class = 0xfbd4f80}, attrs = 256, type = MONO_TYPE_END,
    num_mods = 2, byref = 1, pinned = 0, modifiers = 0x102f6f88}, byval_arg = {
    data = {klass = 0x20960080, type = 0x20960080, array = 0x20960080,
      method = 0x20960080, generic_param = 0x20960080,
      generic_class = 0x20960080}, attrs = 1536, type = MONO_TYPE_END,
    num_mods = 3, byref = 1, pinned = 0, modifiers = 0x102f6f90},
  generic_class = 0x102a20c8, generic_container = 0x1033cc30,
  reflection_info = 0xf7e607b2, gc_descr = 0x3ffff, runtime_info = 0xfbd4f80,
  next_class_cache = 0x100000b, vtable = 0x20960080,
  field_def_values = 0x600000f}
(gdb) x/50 0x102f6ee8
0x102f6ee8:     0x20960080      0x06000009      0x102a20c8      0x102f03c8
0x102f6ef8:     0xf7e606bf      0x4003ffff      0x0fbd9790      0x01040006
0x102f6f08:     0x20960080      0x0600000a      0x102a20c8      0x1033c6a0
0x102f6f18:     0xf7e606dc      0x0003ffff      0x0fbd4f40      0x01000007
0x102f6f28:     0x20960080      0x0600000b      0x102a20c8      0x1033c7d0
0x102f6f38:     0xf7e606fd      0x0003ffff      0x0fbd4f60      0x01000008
0x102f6f48:     0x20960080      0x00000000      0x00000001      0x00000000
0x102f6f58:     0x00000098      0x0003ffff      0x0fbd4f60      0x01000009
0x102f6f68:     0x20960080      0x0600000d      0x102a20c8      0x1033c8d0
0x102f6f78:     0xf7e6076d      0x0003ffff      0x0fbd4f80      0x0100000a
0x102f6f88:     0x20960080      0x0600000e      0x102a20c8      0x1033cc30
0x102f6f98:     0xf7e607b2      0x0003ffff      0x0fbd4f80      0x0100000b
0x102f6fa8:     0x20960080      0x0600000f

note the patern of 0x0003ffff and 0x0600000? the 0x0600 is the 1536 value from
0x102f6f2c

the gklass struct seems to be in beter shape:

(gdb) print *gklass
$4 = {element_class = 0x102a20c8, cast_class = 0x102a20c8,
  supertypes = 0x102a2190, idepth = 2, rank = 0 '\0', instance_size = 12,
  inited = 1, init_pending = 0, size_inited = 1, valuetype = 0, enumtype = 0,
  blittable = 0, unicode = 0, wastypebuilder = 0, min_align = 4 '\004',
  packing_size = 0, ghcimpl = 0, has_finalize = 0, marshalbyref = 0,
  contextbound = 0, delegate = 0, gc_descr_inited = 1, has_cctor = 0,
  has_references = 0, has_static_refs = 0, no_special_static_fields = 0,
  is_com_object = 0, nested_classes_inited = 0, simd_type = 0,
  exception_type = 0 '\0', parent = 0x102a2b60, nested_in = 0x0,
  nested_classes = 0x0, image = 0x102a1b08, name = 0xf7e604a9 "Tests",
  name_space = 0xf7e60334 "", enum_basetype = 0x0, declsec_flags = 0,
  type_token = 33554434, vtable_size = 4, interface_count = 0,
  interface_id = 0, max_interface_id = 0, interface_offsets_count = 0,
  interfaces_packed = 0x102e2c90, interface_offsets_packed = 0x102e2c90,
  interface_bitmap = 0x102e2c90 "", interfaces = 0x0, sizes = {class_size = 0,
    element_size = 0, generic_param_token = 0}, flags = 1048577, field = {
    first = 0, count = 1}, method = {first = 0, count = 152}, property = {
    first = 0, count = 0}, event = {first = 0, count = 0}, marshal_info = 0x0,
  fields = 0x102e2c78, properties = 0x0, events = 0x0, methods = 0x102f6b88,
  this_arg = {data = {klass = 0x102a20c8, type = 0x102a20c8,
      array = 0x102a20c8, method = 0x102a20c8, generic_param = 0x102a20c8,
      generic_class = 0x102a20c8}, attrs = 0, type = MONO_TYPE_CLASS,
    num_mods = 0, byref = 1, pinned = 0, modifiers = 0x102a2168}, byval_arg = {
    data = {klass = 0x102a20c8, type = 0x102a20c8, array = 0x102a20c8,
      method = 0x102a20c8, generic_param = 0x102a20c8,
      generic_class = 0x102a20c8}, attrs = 0, type = MONO_TYPE_CLASS,
    num_mods = 0, byref = 0, pinned = 0, modifiers = 0x102a2170},
  generic_class = 0x0, generic_container = 0x0, reflection_info = 0x0,
  gc_descr = 0x0, runtime_info = 0x102e2c98, next_class_cache = 0x0,
  vtable = 0x102b61e8, field_def_values = 0x0}
(gdb) x/50 0x102a20c8
0x102a20c8:     0x102a20c8      0x102a20c8      0x102a2190      0x00020000
0x102a20d8:     0x0000000c      0xa0040040      0x00000000      0x102a2b60
0x102a20e8:     0x00000000      0x00000000      0x102a1b08      0xf7e604a9
0x102a20f8:     0xf7e60334      0x00000000      0x00000000      0x02000002
0x102a2108:     0x00000004      0x00000000      0x00000000      0x102e2c90
0x102a2118:     0x102e2c90      0x102e2c90      0x00000000      0x00000000
0x102a2128:     0x00100001      0x00000000      0x00000001      0x00000000
0x102a2138:     0x00000098      0x00000000      0x00000000      0x00000000
0x102a2148:     0x00000000      0x00000000      0x102e2c78      0x00000000
0x102a2158:     0x00000000      0x102f6b88      0x102a20c8      0x00001202
0x102a2168:     0x102a20c8      0x00001200      0x00000000      0x00000000
0x102a2178:     0x00000000      0x00000000      0x102e2c98      0x00000000
0x102a2188:     0x102b61e8      0x00000000


-- 
Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.


More information about the mono-bugs mailing list