stack traces when debugging GHC

Richard Eisenberg eir at cis.upenn.edu
Wed Apr 15 00:20:47 UTC 2015


Posted as #10303. Comments welcome.

On Apr 13, 2015, at 7:57 AM, Simon Peyton Jones <simonpj at microsoft.com> wrote:

> |  I see you've added a reference buried in Debugging/Compiler.  Why don't
> |  we just make traceStack the default?  Perhaps with a flag to disable
> |  (or enable) the stack trace.
> 
> Sounds desirable to me. It'll only work with profiling, though, of course.
> 
> Would someone like to do this?  At least make a ticket?
> 
> Simon
> 
> |  -----Original Message-----
> |  From: ghc-devs [mailto:ghc-devs-bounces at haskell.org] On Behalf Of Simon
> |  Marlow
> |  Sent: 11 April 2015 21:27
> |  To: Richard Eisenberg; ghc-devs at haskell.org Devs
> |  Subject: Re: stack traces when debugging GHC
> |  
> |  On 09/02/2015 02:51, Richard Eisenberg wrote:
> |  > Hi devs,
> |  >
> |  > I've just made a miraculous discovery and I want to share!
> |  >
> |  > It has happened many times that I create some bizarre error in GHC
> |  and have no clue where it comes from. In the past, I've ended up using
> |  pprTrace to label all calls of the failing function, sometimes
> |  recursively, until I get an idea of what's going on. This is terribly
> |  painful. And then, I noticed that the function Debug.Trace.traceStack
> |  (just in the `base` package, not part of GHC) will print out a stack
> |  trace, when profiling is enabled. So, I tried building a profiled build
> |  of GHC, with -DDEBUG and -fprof-auto (just by editing the "prof"
> |  section of build.mk).
> |  >
> |  > And then, voila, ASSERTs now print stack traces! And, with a small
> |  change in Outputable, I can get pprTrace to print stack traces, too!
> |  Hooray!
> |  
> |  I should have advertised this more widely, thanks for pointing it out.
> |  
> |  > I'd love to put this on the wiki. Any clue where this might be found?
> |  
> |  I see you've added a reference buried in Debugging/Compiler.  Why don't
> |  we just make traceStack the default?  Perhaps with a flag to disable
> |  (or
> |  enable) the stack trace.
> |  
> |  Cheers,
> |  Simon
> |  _______________________________________________
> |  ghc-devs mailing list
> |  ghc-devs at haskell.org
> |  http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
> 



More information about the ghc-devs mailing list