基本上,我的代码在 NucleoProf_init 中崩溃,从 gdb 的堆栈跟踪以及我调用的唯一函数这一事实来看。
#include <HsFFI.h>
static char *argv[] = {"NucleoProf", "", "", 0};
static int argc = 1;
HsBool NucleoProf_init(void){
// Initialize Haskell runtime
hs_init(&argc, (char***)&argv );
return HS_BOOL_TRUE;
}
我怀疑这是我传递 argv 参数的方式,或者可能是 argv 的类型转换,因为堆栈跟踪包含以下内容:
#3 0x00007ffff5956282 in setFullProgArgv ()
from /usr/lib/ghc/libHSrts-ghc7.4.1.so
#4 0x00007ffff5956d04 in hs_init_ghc () from /usr/lib/ghc/libHSrts-ghc7.4.1.so
#5 0x00007ffff5b9ed4f in NucleoProf_init ()
问题:这是“合成”一个简单命令行的正确方法吗?