[Haskell-cafe] Re: Closure trace?
simonmarhaskell at gmail.com
Wed Jun 14 08:39:08 EDT 2006
Michael Marte wrote:
> frequently we are seeing messages like "List.head: empty list" or
> "Maybe.fromJust: Nothing". It is clear what happened and where the
> messages were triggered yet the real cause is usually VERY hard to find
> unless the program is small and simple. I came to the conclusion that
> functions like head and fromJust are best to be avoided because their
> use may render large programs unmaintainable. Instead I use irrefutable
> pattern matching like (x : _) = l and Just bla = maybeBla whenever
> possible because when a pattern match fails the ghc runtime system gives
> me a nice error message naming the module, line and column. However,
> this procedure may become tedious when the error occurs in a call to a
> third-party library function.
> I wonder whether it is possible to print a "closure trace" similar to a
> stack trace in procedural programming.
Try compiling for profiling (-prof -auto-all) and running with +RTS -xc.
If you're lucky, you'll get a stack trace.
The GHCi debugging project that Pepe Iborra is working on (Google summer
of code) might address this issue, too.
More information about the Haskell-Cafe