5

本用户指南:

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

广告:

执行可以是单步的:评估器将在每次归约后暂停执行,允许检查局部变量。这相当于在程序中的每个点都设置一个断点。

然而,我在文档中找不到任何东西告诉我如何做到这一点。在标题下:

2.5.2. 单步

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

谢谢。

4

2 回答 2

6

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

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

于 2013-05-20T22:31:30.330 回答
4

好的,我想通了:

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
于 2013-05-20T22:34:15.147 回答