[phobos] "bus error" happens on Mac OS X

Steve Schveighoffer schveiguy at yahoo.com
Fri Nov 12 11:25:58 PST 2010


Hm... I guess I need Walter to say whether it's a valid condition for a module 
to be null in the moduleinfo array.  Is that true Walter?  If so, I'll put the 
guards back in.

If not, should druntime look for that condition and throw an error?

-Steve



----- Original Message ----
> From: Masahiro Nakagawa <repeatedly at gmail.com>
> To: Discuss the phobos library for D <phobos at puremagic.com>
> Sent: Fri, November 12, 2010 1:30:50 PM
> Subject: Re: [phobos] "bus error" happens on Mac OS X
> 
> I inserted your code and assert failed.
> And then, I enabled following  code.
> 
> foreach (m; _moduleinfo_array)
> {
>       printf("\t%p\n", m);
> }
> 
> Result:
> 
> Testing  generated/osx/debug/unittest/crc32
>         0x0
>          0x146a0
>         0x14ac0
>          0x14ad0
>         0x15dbc
>          0x15df4
>         0x15e2c
>          0x15ea0
>         0x15ecc
>          0x15f68
>         0x15f9c
>          0x1649c
>         0x1696c
>          0x17ac4
>         0x17fa4
>          0x18308
>         0x18334
>          0x1836c
>         0x183f8
>          0x18444
>         0x18524
>          0x18c74
>         0x18c84
>          0x18cf8
>         0x18d68
>          0x18d9c
>         0x18dcc
>          0x18e0c
>         0x18f60
>          0x19088
>         0x193ec
> make[1]:  *** [generated/osx/debug/unittest/crc32] Bus error
> make[1]: *** Deleting file  `generated/osx/debug/unittest/crc32'
> make: *** [unittest] Error 2
> 
> The  first element of _moduleinfo_array is null...
> 
> Currently, Jacob's patch  fixes this bug :)
> 
> 
> Masahiro
> 
> On Fri, 12 Nov 2010 21:20:06 +0900,  Steve Schveighoffer <schveiguy at yahoo.com> 
>wrote:
> 
> >  I think the Mac OS code generation has some issues.
> > 
> > In the  original code before I checked that in, every module index is set 
>(see
> >  the revision before 414:
> > 
>http://dsource.org/projects/druntime/browser/trunk/src/object_.d?rev=405#L1900).
> >   I don't see why r414 fails and r413 doesn't.
> > 
> > BTW, I just  noticed, a lot of the code in prior versions checks to see if 
>the
> > array  contains null pointers, does this happen?  I don't think I put  those
> > guards in.
> > 
> > Masahiro, can you run an assert loop  like so?  I don't have a Mac, and
> > everything appears to work fine  on Linux.
> > 
> > foreach(m; _moduleinfo_array)
> >     if(!m)
> >       assert(0, "found null reference");
> > 
> > -Steve
> > 
> > 
> > 
> > ----- Original Message  ----
> >> From: Masahiro Nakagawa <repeatedly at gmail.com>
> >> To:  Phobos mailing list <phobos at puremagic.com>
> >>  Sent: Fri, November 12, 2010 12:03:01 AM
> >> Subject: [phobos] "bus  error" happens on Mac OS X
> >> 
> >> Any programs raised "bus  error" in the trunk (My environment is Mac OS X
> >> 10.6.4).
> >>  I checked druntime and found problematic revision.
> >> r413 works   fine but r414 and later don't (Phobos unittest stopped at 
crc32
> >>  test).
> >> 
> >> http://dsource.org/projects/druntime/changeset/414
> >> 
> >>  The cause is an  access to _moduleinfo_array.
> >> In the above  link, "m.index = i;" at line 2045  is because of this bug.
> >> But,  but, but, r414 doesn't change the creation  routine of  
>_moduleinfo_array.
> >> 
> >> It's a mystery to me...   Why?
> >> 
> >> 
> >> Masahiro
> >>  _______________________________________________
> >> phobos  mailing  list
> >> phobos at puremagic.com
> >> http://lists.puremagic.com/mailman/listinfo/phobos
> >> 
> > 
> > 
> > _______________________________________________
> > phobos  mailing list
> > phobos at puremagic.com
> > http://lists.puremagic.com/mailman/listinfo/phobos
> _______________________________________________
> phobos  mailing list
> phobos at puremagic.com
> http://lists.puremagic.com/mailman/listinfo/phobos
> 


      


More information about the phobos mailing list