[Haskell-cafe] How to debug GHC
Simon Marlow
simonmar at microsoft.com
Mon Sep 19 07:20:16 EDT 2005
On 19 September 2005 03:57, Frederik Eaton wrote:
>>> It could be a bug - can you reduce the example and report it?
>>>
>>> GHC's profiler tries to overlay a lexical call graph on to the
>>> dynamic execution of the program. It does this more or less in the
>>> way you described before: every function gets an extra argument
>>> describing the call context. However, there are some tricky areas:
>>> notably CAFs. We don't as yet have a principled description of the
>>> mechanism, and I know of various cases where odd results are
>>> obtained with the current system. Also, the optimiser has to be
>>> careful not to change the shape of the call graph, and I suspect
>>> there are cases where it goes wrong.
>>
>> I see. Well, I'm afraid I've lost the example, but I'll keep my eyes
>> open in case it happens again. It's good to know what the correct
>> behavior is supposed to be.
>
> While I was finishing a project for somebody I ran into this problem
> again, as well as some other bugs, and made several copies of the code
> so that the problems could be reproduced.
>
> In addition to the stack trace problems, I found: (1) a problem where
> output freezes when it is being piped through 'tee' and the user
> presses ^S and then ^Q and (2) an issue where a "trace" statement is
> not being printed correctly by ghc (but is being printed correctly by
> runghc).
The "tee" problem is probably a result of the fact that GHC puts
stdin/stdout into non-blocking mode.
> However, I don't have time to reduce these to minimal test cases. Do
> you want to look at them anyway?
Sure, it's always good to have a record of bug reports even if we don't
get to them right away.
Cheers,
Simon
More information about the Haskell-Cafe
mailing list