我通过FFI在Haskell中导入一些东西,并希望能够用lldb调试它们。例如,我可能有以下Haskell文件(test.hs):
main = do
foo
return()
foreign import ccall "foo" foo :: IO ()
以下C文件(ctest.c):
#include <stdio.h>
void foo(){
printf("test\n");
}
然后我可以用ghc test.hs ctest.c
编译它。如果我通过LLDB运行可执行文件,我可以在foo
设置断点,但是,它只给出了汇编代码,例如:
test`foo: ->
0x1000019e0 <+0>: pushq %rbp
0x1000019e1 <+1>: movq %rsp, %rbp
0x1000019e4 <+4>: subq $0x10, %rsp
0x1000019e8 <+8>: leaq 0x33eb31(%rip), %rdi ; "test\n"
有没有办法告诉GHC编译我通过FFI导入的-g
的C文件,以便我可以获得调试符号?
答案 0 :(得分:6)