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