逐行逐步执行功能

时间:2013-05-20 22:22:29

标签: debugging haskell ghci

本用户指南:

http://www.haskell.org/ghc/docs/latest/html/users_guide/ghci-debugger.html

通告:

  

执行可以单步执行:评估程序将暂停执行   大约在每次减少之后,允许局部变量   检查。这相当于在每个点设置断点   在该计划中。

然而,我在文件中找不到任何告诉我如何做到这一点的内容。在标题下:

  

2.5.2。单步

它描述了如何从断点到断点。但我不想在每一行都设置断点。广告是假的还是有办法逐行逐步完成一个程序?

感谢。

2 个答案:

答案 0 :(得分:6)

设置并到达断点后,您可以从调试器中调用:step

还有其他单步可能性。在断点处键入:help一次会告诉您更多关于您可以做什么的信息。

答案 1 :(得分:3)

好的,我明白了:

ghci> :step function_name arg1 arg2
...
...
ghci> :step   
...
...
ghci> :step

如果你忘记了函数参数,那么你将得到一个神秘的错误信息:

<interactive>:138:1:
    No instance for (Show (String -> Double))
      arising from a use of `print'
    Possible fix:
      add an instance declaration for (Show (String -> Double))
    In a stmt of an interactive GHCi command: print it

......这可能会让你把头发撕掉。如果你想跳到最后:

ghci> :continue