我有一个haskell包,其中也包含本机代码。但是,当我通过FFI接口时,我得到例外(有时是段错误)。
是否可以在haskell端处理本机异常。我尝试在某些情况下使用catch / catchIOError而没有任何成功。
在这种情况下,我还想调试仅本机代码。如何在Haskell / FFI中使用本机调试器?
有时,C代码中可能会出现段错误。能够调试此代码会有很大帮助。
答案 0 :(得分:2)
如果您认为错误位于C中的组件中,请使用gdb
。您应该能够在C代码中设置断点并进入它。编译代码,只需运行gdb dist/build/myprogram/myprogram
(或任何地方)。
另外,您可以查看valgrind
来检测已分配的内存未被释放的内容。