本用户指南:
http://www.haskell.org/ghc/docs/latest/html/users_guide/ghci-debugger.html
广告:
执行可以是单步的:评估器将在每次归约后暂停执行,允许检查局部变量。这相当于在程序中的每个点都设置一个断点。
然而,我在文档中找不到任何东西告诉我如何做到这一点。在标题下:
2.5.2. 单步
它描述了如何从断点跳到断点。但我不想在每一行都设置断点。广告是假的还是有办法逐行浏览程序?
谢谢。
本用户指南:
http://www.haskell.org/ghc/docs/latest/html/users_guide/ghci-debugger.html
广告:
执行可以是单步的:评估器将在每次归约后暂停执行,允许检查局部变量。这相当于在程序中的每个点都设置一个断点。
然而,我在文档中找不到任何东西告诉我如何做到这一点。在标题下:
2.5.2. 单步
它描述了如何从断点跳到断点。但我不想在每一行都设置断点。广告是假的还是有办法逐行浏览程序?
谢谢。
设置并到达断点后,您可以:step
从调试器调用。
还有其他单步可能性。在断点处键入:help
一次会告诉你更多关于你能做什么的信息。
好的,我想通了:
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