Nodejs本机插件奇怪的分段错误

Nodejs native addon weird segmentation fault

我正在开发一个节点插件,我遇到了一些奇怪的分段错误问题。在 MyClass.cc 中,我声明了一个结构和一个 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 是一种静态方法,不确定这是否有所作为。

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