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 没有抛出任何错误并链接了两个文件。这导致在创建结构实例时出现分段错误。
我正在开发一个节点插件,我遇到了一些奇怪的分段错误问题。在 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 没有抛出任何错误并链接了两个文件。这导致在创建结构实例时出现分段错误。