【发布时间】:2015-07-06 06:10:35
【问题描述】:
我正在尝试在 Haskell 中调试一个大型、复杂的程序,这并不是我自己编写的。
我正在尝试打印我的数据结构来诊断错误,但是当我这样做时,我收到以下错误:error: Prelude.undefined。如您所见,此错误信息极少。
我有理由确定这是来自我已“部分”初始化的记录,我正在尝试访问尚未设置值的字段。
程序(编译器)分布在两个 cabal 项目中,一个库和一个使用该库的可执行文件。这使得使用 GHCI/cabal-repl 进行调试变得困难:我无法在可执行文件上运行使用 GHCi,因为它不是错误的来源,但是重新创建可执行文件提供给库的输入太复杂而无法手动完成。
我想知道:我可以做些什么来获取有关创建不正确记录的位置、错误来源是哪个字段等的更多信息。是否有 RTS 选项或我可以用来提供更多信息的东西错误输出?
【问题讨论】:
标签: debugging haskell ghc ghci