Nodejs原生插件奇怪的分段错误

时间:2017-10-14 10:58:10

标签: c++ node.js segmentation-fault nan v8

我正在开发一个节点插件,我面临一些奇怪的分段错误问题。在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是一种静态方法,不确定这是否有所作为。

1 个答案:

答案 0 :(得分:2)

好的,原来我在另一个.cc文件中定义了另一个名为ComputeContext的结构。 MSVC没有抛出任何错误并链接两个文件。这在创建结构的实例时导致了分段错误。