Jim*_*hoi 3 debugging haskell exception
我是haskell的初学者。
现在我正在努力解决负索引异常。
但与其他通用语言不同,在我看来,haskell 没有显示发生异常的行号。
是否可以知道发生异常的行号?
这些天基本上有两种好方法。
HasCallStack
通过你的代码自由地散布约束,如
foo :: HasCallStack => Int -> [a] -> a
foo n xs = xs !! n
Run Code Online (Sandbox Code Playgroud)
编译-prof
并传递-xc
RTS 标志,如
ghc -prof foo.hs && ./foo +RTS -xc
Run Code Online (Sandbox Code Playgroud)
后者更容易,前者使您可以更好地控制哪些东西被认为“足够有趣”以放入堆栈跟踪。
归档时间: |
|
查看次数: |
60 次 |
最近记录: |