是否有针对Haskell/GHCi /其他的调试器"声明"?

Wiz*_*zek 3 debugging haskell

背景

我正在学习GHCi:破解功能.JS有一个内置语句debugger;,如果正在进行调试,它将充当断点,否则不执行任何操作.

Haskell/GHCi有类似的声明/功能吗?

进一步说明

我正在思考一些事情Debug.Trace.trace :: String -> a -> a.

如果它在unsafePerformIO内部使用,或者依赖GHCi特定的东西,它是可以的,因为它仅用于调试.

或者,如果还没有任何东西,可能不会有这样的东西,:set -fbreak-on-exception并有一个抛出异常并立即捕获它的函数?(unsafePerformIO这里也可能需要,因此函数可以放在纯代码中.)

Gab*_*iba 5

你不需要它.

让代码干净比完全调试插入要好得多.

使用ghci,您可以根据需要在功能名称或行号中设置断点.来自ghci:帮助

   :break [<mod>] <l> [<col>]  set a breakpoint at the specified location
   :break <name>               set a breakpoint on the specified function
Run Code Online (Sandbox Code Playgroud)

另类:

更重要的是,您可以在基于项目的./.ghci命令批处理文件中保留断点列表,并在ghci start处自动加载.