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

时间:2017-07-30 21:33:29

标签: debugging ghci

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

遵循这些说明和该示例,我能够设置断点并运行代码,以便调试器停在它们处。

*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?最好这样做也可以不需要重置断点。

1 个答案:

答案 0 :(得分:1)

:abandon

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

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

 -- Commands for debugging:

   :abandon                    at a breakpoint, abandon current computation