我目前正在調試我在Haskell中爲我的畢業論文執行的算法。這似乎對大多數投入正常工作,但我發現一個輸入,這使得GHC拋出錯誤如何顯示在Haskell中引發的錯誤的回溯
***異常:Map.find:元素在地圖上不
因爲我有很多在我的代碼中查找地圖,我需要找到引發這個錯誤的行以使其具有任何意義。我通過this guide閱讀,但我雖然設置了標誌fbreak-on-exception
(和-error
),所有GHCI讓我跟蹤功能後,我測試的是:
[...]> :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,所以鏈接的指南應該適用。
看到[這裏](http://stackoverflow.com/questions/8595077/how-can-i-get-the-position-where-error-was-called)更好的解決方案 – Simon