[Mono-bugs] [Bug 691100] New: fixed arrays of longs in unsafe structs results SIGABRT in runtime

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Sun May 1 12:52:38 EDT 2011


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

https://bugzilla.novell.com/show_bug.cgi?id=691100#c0


           Summary: fixed arrays of longs in unsafe structs results
                    SIGABRT in runtime
    Classification: Mono
           Product: Mono: Compilers
           Version: 2.10.x
          Platform: Macintosh
        OS/Version: Mac OS X 10.6
            Status: NEW
          Severity: Critical
          Priority: P5 - None
         Component: C#
        AssignedTo: msafar at novell.com
        ReportedBy: ru.zelyony at gmail.com
         QAContact: mono-bugs at lists.ximian.com
          Found By: ---
           Blocker: ---


User-Agent:       Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:2.0.1)
Gecko/20100101 Firefox/4.0.1

//***************************************************************************
using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;

namespace ConsoleApplication1
{
    public unsafe struct SomeType
    {
        public int i1, i2, i3;
        public fixed long vec[10]; // got a SIGABRT
    }

    class Program
    {

        static unsafe void Main( string[] args )
        {
            var c = new SomeType();
            var c2 = new SomeType();
            Console.WriteLine( "sizeof={0}", Marshal.SizeOf( c));
            c.i1 = c2.i1 = 10;
            c.i2 = c2.i2 = 8;
            c.i3 = c2.i3 = 1;
            c.vec[0] = c.vec[5] = c.vec[9] = c2.vec[0] = c2.vec[5] = c2.vec[9]
= 123;
            Console.WriteLine( "{0} {1} {2} {3} {4} {5} {6} {7}", c.i1, c.i2,
c.i3, c.vec[0], c.vec[5], c.vec[9], c.vec[3], c.vec[7] );
            //Console.WriteLine( "{0} {1} {2} {3} {4} {5} {6} {7}", c2.i1,
c2.i2, c2.i3, c2.vec[0], c2.vec[5], c2.vec[9], c2.vec[3], c2.vec[7] );

            Console.ReadLine();
        }
    }
}
//***************************************************************************/


Reproducible: Always

Steps to Reproduce:
1.
2.
3.
Actual Results:  
* Assertion at mini-codegen.c:1186, condition `reginfo [sreg].born_in > 0' not
met

Stacktrace:


Native stacktrace:

    0   mono                                0x000b6ea9 0x0 + 749225
    1   libSystem.B.dylib                   0x97f8248b _sigtramp + 43
    2   ???                                 0xffffffff 0x0 + 4294967295
    3   libSystem.B.dylib                   0x9800f879 raise + 26
    4   libSystem.B.dylib                   0x980259b8 abort + 93
    5   mono                                0x0024fd9e 0x0 + 2424222
    6   mono                                0x0024fe00 0x0 + 2424320
    7   mono                                0x000b3c4d 0x0 + 736333
    8   mono                                0x00008bcc 0x0 + 35788
    9   mono                                0x0000eb60 0x0 + 60256
    10  mono                                0x000105a6 0x0 + 66982
    11  mono                                0x000113c6 0x0 + 70598
    12  mono                                0x001bd83c 0x0 + 1824828
    13  mono                                0x001bfe35 0x0 + 1834549
    14  mono                                0x001bf21f 0x0 + 1831455
    15  mono                                0x000884c2 0x0 + 558274
    16  mono                                0x00003a46 0x0 + 14918

Debug info from gdb:

/tmp/mono-gdb-commands.IxlIHV:1: Error in sourced command file:
unable to debug self

=================================================================
Got a SIGABRT while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries 
used by your application.
=================================================================

Abort trap


Expected Results:  
just work

same code (fixed array of longs) not works in iOS (compiled mtouch)
current my MonoFramework is 2.10.2.5.4

in MF 2.10.1.3 fixed array of int => Marshal.SizeOf( c ) == 24 NOT equals
13*sizeof(int)

-- 
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