
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