thomas.dubuisson: > > 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 been. It took all of 5 seconds to find the bug with HPC. -- Don _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe