我已经使用了ghci调试器,但是如果它与文本编辑器有点集成以简化设置断点的过程,我会更喜欢.它可能不应该严格评估每个可见变量,但至少可以简化查看本地状态的过程.
我最近发现了跟踪功能,它允许从其他困难的地方调试打印输出.
调试Haskell代码的一个好方法是编写和测试使用代数法快速检查和SmallCheck.已经有几个Haskell调试器,包括Hat,Hood和Freya,但是没有一个被认为足够值得值得维护很长一段时间.
当它是Haskell时,你必须以不同的方式思考如何做事.QuickCheck页面上的ICFP论文有一些很好的例子可以帮助您入门.如果您想xmonad
使用QuickCheck 对现实示例进行广泛调试.
是的,GHCi调试器的前端将是一件好事.也许我们会在下一个Hackathon中完成一些事情.但是,同时:
Monad Reader,第10期(PDF)有一篇关于使用调试器的文章.也许这可以给你一些提示.
或者,Haskell非常适合使用QuickCheck进行自下而上的测试.即,单独测试您的组件,然后将它们放在一起.如果您的代码是纯粹的,这通常是Just Works.
作为旁注,请注意Debug.trace
在调试多线程程序时不会成为您的朋友.
从长远来看,测试是最佳选择.