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

Sean Kelly sean at invisibleduck.org
Fri Nov 12 15:34:52 PST 2010


Hm... I guess the opApply in ModuleInfo could just skip null entries.  Or assert.  Either would be better than simply passing them through to the caller.

On Nov 12, 2010, at 11:25 AM, Steve Schveighoffer wrote:

> 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
>> 
> 
> 
> 
> _______________________________________________
> phobos mailing list
> phobos at puremagic.com
> http://lists.puremagic.com/mailman/listinfo/phobos



More information about the phobos mailing list