[Haskell-cafe] Best way to find an "undefined" error?

Don Stewart dons at galois.com
Thu Feb 14 16:43:13 EST 2008


saynte:
> On Thu, Feb 14, 2008 at 3:02 PM, Denis Bueno <dbueno at gmail.com> wrote:
> > On Thu, Feb 14, 2008 at 2:55 PM, Don Stewart <dons at galois.com> wrote:
> >  >  You can use the profiler to get a stack trace, or use the new
> >  >  GHCi debugger to step backwards from the exception to the source.
> >  >
> >  >  I wrote a bit of a tutorial for this here:
> >  >
> >  >  http://cgi.cse.unsw.edu.au/~dons/blog/2007/11/14#no-exceptions
> >
> >  Section 6.3 of http://haskell.org/haskellwiki/Debugging also is
> >  relevant for using ghcu to step backward ... perhaps the section label
> >  is misleading, though.  Feel free to modify as needed if you find the
> >  ghci stepper lets you find the problem
> 
> Well, when using +RTS -xc, I get:
> 
> <GHC.Err.CAF><GHC.Err.CAF>Prelude.undefined
> 
> I'm not really sure what to do with this, not really the stacktrace I
> was hoping for. The ghci debugger I found was really quite nice, up
> until it his some portion of code that it isn't interpreting. By not
> "interpreting" i mean things that have been already been compiled and
> it's just calling (even if it has been compiled with profiling). I
> have a feeling that my problem is somewhere in something that has
> already been compiled.

Is it possible to just load all the code interpreted? Or is the problem
in a dependent library?

If you profile and let the program terminate, there should be a stack
trace in the .prof as well.

-- Don


More information about the Haskell-Cafe mailing list