Hi all, I am having a tough time debugging an array problem, and I was wondering if anyone had some pointers. I am working on a complicated function that relies on a few mutually recursive arrays (AR parameter estimation using Burg's Method). I am getting a runtime error, index: Index out of range, when I test out the function. For the life of me, I cannot figure out where the error is. One complication is that not all of the arrays elements are defined for the index bounds. I have tried several simplifications to isolate the arrays, but when I simplify too far, I run into type problems. Is there an easy way to trace execution? Does anyone have any advice on how to go about debugging this? I am using Hugs 98, November 2002 if it matters. Thanks. -- Matthew Donadio (m.p.donadio@ieee.org)
If you're willing to use something other than Hugs, you're set. With GHC or NHC you could use the HAT debugger (www.cs.york.ac.uk/fp/hat/). Or even just with GHC if you compile with -prof -auto-all (for profiling), you can run with +RTS -xc to get a stack backtrace on errors. Otherwise, if you import IOExts, you can get poor-man's tracing by doing something like: assume your original function looked like: myfunc a b c = d myfunc e f g = h you could change this to: myfunc a b c | trace ("entered myfunc " ++ show (a,b,c)) False = undefined myfunc a b c = d myfunc e f g = h then you'll get these traces printed (of course you only show arguments which are showable). HTH - Hal -- Hal Daume III "Computer science is no more about computers | hdaume@isi.edu than astronomy is about telescopes." -Dijkstra | www.isi.edu/~hdaume On Wed, 8 Jan 2003, Matthew Donadio wrote:
Hi all,
I am having a tough time debugging an array problem, and I was wondering if anyone had some pointers.
I am working on a complicated function that relies on a few mutually recursive arrays (AR parameter estimation using Burg's Method). I am getting a runtime error, index: Index out of range, when I test out the function. For the life of me, I cannot figure out where the error is. One complication is that not all of the arrays elements are defined for the index bounds.
I have tried several simplifications to isolate the arrays, but when I simplify too far, I run into type problems. Is there an easy way to trace execution? Does anyone have any advice on how to go about debugging this?
I am using Hugs 98, November 2002 if it matters.
Thanks.
-- Matthew Donadio (m.p.donadio@ieee.org) _______________________________________________ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
participants (2)
-
Hal Daume III -
Matthew Donadio