Haskell中发生错误时,如何使用DWARF获取堆栈跟踪?

luo*_*990 6 haskell dwarf

GHC已经支持DWARF,有文章告诉我们可以在发生错误时使用DWARF获取stace跟踪,但是没有人告诉我们如何做,只是-g在编译时添加并不能使生成的程序直接打印出堆栈跟踪。

我还从ghc Wikighc用户指南中阅读了有关DWARF的文章,但是它们都通过在gdbSIGINT或SIGINT 上添加断点来讲述如何获取堆栈跟踪,但是在错误时如何获取堆栈跟踪方面却一无所知发生。

那么,发生错误时使用DWARF进行堆栈跟踪的确切步骤是什么?

我们是否期望GHC.ExecutionStack通过手动添加调用showStackTrace包装的代码来使用API来获取堆栈跟踪unsafePerformIO