我正在开发一个节点插件,我面临一些奇怪的分段错误问题。在MyClass.cc中,我声明了一个struct和一个NAN_METHOD,如下所示:
struct ComputeContext {
int test = 1;
};
NAN_METHOD(MyClass::Foo) {
ComputeContext ctx;
info.GetReturnValue().Set(Nan::New(true));
}
奇怪的是,当我从JavaScript调用此方法时,程序退出并出现分段错误。但是,如果我不初始化测试,例如int test;
,它不会崩溃或报告段错误。为了检测分段错误,我正在使用segfault-handler包。
也许有人知道这里发生了什么?作为旁注,MyClass :: Foo是一种静态方法,不确定这是否有所作为。
答案 0 :(得分:2)
好的,原来我在另一个.cc文件中定义了另一个名为ComputeContext的结构。 MSVC没有抛出任何错误并链接两个文件。这在创建结构的实例时导致了分段错误。