В традиционном императивном отладчике, таком как gdb
, можно выполнить выполнение программы с помощью SIGINT
, проверить состояние программы и в конечном итоге возобновить выполнение.
В то время как GHCi позволяет взломать выполнение программы в произвольной точке с помощью -fbreak-on-exception
, попытка возобновить выполнение с помощью :continue
приведет только к тому, что интерпретатор продолжит работу с обработчиком исключений и завершает работу программы,
> let main = findCureForCancer
> :set -fbreak-on-exception
> :trace main
[twiddle thumbs]
[why is this taking so long?]
[maybe something is wrong, I better see what it doing]
^CStopped at <exception thrown>
_exception :: e = GHC.Exception.SomeException
GHC.IO.Exception.UserInterrupt
> :hist
...
[ahh, looks like this will just take a bit longer]
> :continue
[program should keep running]
Возможно ли завершить выполнение и продолжить возобновление после того, как вы купили бит с отладчиком GHCi?