[Haskell-cafe] Re: HPC for debugging (Was Re: GHCi Debugger
dons at galois.com
Fri Jul 11 00:38:15 EDT 2008
> > I could try GHC's new debugger. But my experiences with it so far have
> > shown that for all but the most trivial programs possible, it becomes
> > intractably difficult to figure out what the debugger is actually
> > showing you.
> At times I think of ghcid as the anti-gdb. If there's a series of let
> bindings, each mutating the predecessor, its enjoyable to see the
> debugger start at the bottom and crawl its way back up.
I'd like to relate a debugging effort this week. A colleague had an
exception thrown from deep within a large body of code, we knew not where.
A few trace statements didn't yield much information. The debugger was
fired up on this >50 module program, and we got a few interesting hints
and pieces, but it seemed as if the exception was floating away from its
call site, to the point it was being demanded. Hmm. A puzzle.
So instead we compiled the application with -fhpc, ran it till the
exception occured, and then ran hpc markup on the result. (This marks up
the program source in colours showing what code was actually executed
during a given program run).
Loading the colourised trace into firefox, we saw at a glance all the
code that had been executed up to the point of the exception, and then
there was the exception itself, staring at us amongst a chunk of bright
yellow code, a lone streak of uncoloured code where it shouldn't have
It took all of 5 seconds to find the bug with HPC.
More information about the Haskell-Cafe