More on FreeBSD/amd64

Gregory Wright gwright at comcast.net
Fri Mar 30 18:17:10 EDT 2007


Hi Ian,

On Mar 30, 2007, at 8:22 AM, Ian Lynagh wrote:

> On Fri, Mar 30, 2007 at 09:31:07AM +0100, Simon Marlow wrote:
>> Ian Lynagh wrote:
>>>
>>> OK, so we know that the wrong value is being passed to
>>> newPinnedByteArray#, right? There aren't many calls to that:
>>>
>>>    libraries/base/Foreign/Marshal/Alloc.hs
>>>    libraries/base/GHC/ForeignPtr.hs (4 calls)
>>>    libraries/base/GHC/Handle.hs
>
> Oh, I've just realised, it's the 6.4.2 libraries you need to look at,
> not the 6.6 ones.

Let me make sure I understand this:  the problem show up
when running the 6.6 compiler in compiler/stage1/ghc-6.6-20070314.
This compiler is linked with the ghc-6.4.2 RTS  _and_ the ghc-6.4.2
libraries, correct?

So when I look for symbols mentioned in the RTS stack, (e.g.,  
"s311_info") I have
to refer to the -ddump-stg output from the ghc-6.4.2 build. Is this  
true?

>
>>> so the easiest way forward is probably to print something unique,  
>>> and
>>> the size passed, in each one and try to work backwards towards the
>>> source. e.g.
>>
>> Or just single-step (by *instruction*, not line) from an earlier  
>> point
>> before the crash.  I think Greg was stepping by line before, which  
>> is why
>> he didn't see anything happen before the erroneous call.
>
> If you're going to try this then I find it easier with
>
>     GhcLibHcOpts += -O0 -g
>
> when building the (6.4.2) libraries.
>
Yes, I did this.

Thank you for your help!

Best Wishes,
Greg




More information about the Glasgow-haskell-users mailing list