如何在 Ghci 调试器中退出 运行 计算?

How to exit a running computation in the Ghci debugger?

我正在按照 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,完全重新加载程序。

如何退出 运行ning 程序,以便从头开始重新 运行 main 而不必退出 ghci? 最好是这个也可以在不需要重置断点的情况下完成。

:abandon

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

从 ghci 中,运行 :? 调出 ghci 的 Commands available from the prompt 帮助文档,其中 :abandon 可以在 Commands for debugging 部分中找到。

 -- Commands for debugging:

   :abandon                    at a breakpoint, abandon current computation