0
我正在開發一個節點插件,我正面臨着一些有關分段錯誤的奇怪問題。在MyClass.cc我宣佈一個結構和NAN_METHOD如下:Nodejs原生插件奇怪的分段錯誤
struct ComputeContext {
int test = 1;
};
NAN_METHOD(MyClass::Foo) {
ComputeContext ctx;
info.GetReturnValue().Set(Nan::New(true));
}
的奇怪的事情是,當我從JavaScript調用,程序將退出,段故障此方法。但是,如果我不初始化測試,例如int test;
,它不會崩潰或報告段錯誤。爲了檢測分段錯誤,我使用了segfault-handler包。
也許有人對這裏發生了什麼有線索?作爲旁註,MyClass :: Foo是一個靜態方法,不知道這是否有所作爲。
您是否嘗試過調試它並檢查哪條線路導致崩潰? – VTT
不幸的是,我還沒有設置調試環境。我認爲這將需要從源代碼構建v8,libuv和節點。但無論如何,segfault處理程序說它在info.GetReturnValue()。Set(Nan :: New(true));'上崩潰。事實上,這種行爲非常奇怪。 – justadudewhohacks
它只需要使用調試符號構建擴展並在調試器下運行。 – VTT