В настоящее время я отлаживаю алгоритм, который я реализовал в Haskell для моей дипломной диссертации. Кажется, что он работает правильно для большинства входов, но я нашел один вход, который заставляет GHC вызывать ошибку
*** Исключение: Map.find: элемент не на карте
Так как у меня есть много поисков Map в моем коде, мне нужно найти строку, бросающую эту ошибку, чтобы понять ее. Я прочитал это руководство, но хотя я установил флаг fbreak-on-exception
(и -error
), все GHCi дают мне после отслеживания функции я 'm тестирование:
[...]> :trace test
[...]
Stopped at <exception thrown>
_exception ::
e = GHC.Exception.SomeException (GHC.Exception.D:Exception _
(GHC.Show.D:Show ...) ....)
(GHC.Exception.ErrorCall ['M',....])
Unable to list source for <exception thrown>
Try rerunning with :trace, :back then :list
[<exception thrown>] [...]> :history
Empty history. Perhaps you forgot to use :trace?
Попытка :trace
снова также не помогает.
Итак, может кто-нибудь сказать мне, что происходит не так, или предложить другой способ найти оскорбительную линию? Спасибо заранее!
PS: Я использую GHC версии 7.0.3, поэтому связанное руководство должно применяться.