debugging - 如何退出 Ghci 调试器中正在运行的计算?

标签 debugging ghci

我正在学习使用 Ghci 调试器,遵循 debugger section GHCi 用户指南。

按照这些说明和示例,我可以设置断点并运行代码,以便调试器在它们处停止。

*Main> :break qsort                                                                     │~                                                                                      
Breakpoint 0 activated at qsort.hs:2:12-13                                              │~                                                                                      
Breakpoint 1 activated at qsort.hs:3:16-47                                              │~                                                                                      
*Main> main                                                                             │~                                                                                      
Stopped in Main.qsort, qsort.hs:3:16-47                                                 │~                                                                                      
_result :: [Integer] = _                                                                │~                                                                                      
a :: Integer = 8                                                                        │~                                                                                      
left :: [Integer] = _                                                                   │~                                                                                      
right :: [Integer] = _                                                                  │~                                                                                      
[qsort.hs:3:16-47] *Main> 

我到达了调试器已停止程序中间执行的程度。在这种状态下,当我想从头开始重新运行程序时,我通常通过 :q 退出 ghci 并重新启动 ghci,完全重新加载程序。

如何退出正在运行的程序,以便从头开始重新运行 main 而不必退出 ghci? 最好也不需要重置断点即可完成此操作。

最佳答案

:abandon

要在 ghci 文档中查找此命令:

在 ghci 中,运行 :? 以调出 ghci 的提示中可用的命令帮助文档,其中 :abandon 可以在调试命令部分。

 -- Commands for debugging:

   :abandon                    at a breakpoint, abandon current computation

关于debugging - 如何退出 Ghci 调试器中正在运行的计算?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45404908/

相关文章:

haskell - 如何正确访问 `Constraint` 类型?

haskell - 将惰性字节串写入 ghci 中的文件时内存爆炸

haskell - 为什么 GHC 和 GHCI 在类型推断上有所不同?

c++ - 是否可以在 cdb/windbg 中进行语法高亮显示?

c# - 如果我在 catch 中添加一个只有 Debugger.Break() 的 try-catch block

c - 为什么这两个 C 程序不会产生相同的结果?

haskell - 如何将 "cabal-dev ghci"与非沙盒、非全局(用户?)包一起使用?

Android studio 切换到其他应用程序后不捕获断点

c++ - 如何纠正对运算符优先级的错误假设以消除代码的副作用?

haskell - 在 haskell 中,GHCi 命令行上的 let x= 和 x= 之间有什么区别吗?