Ich entwickle ein Knoten-Addon und ich habe einige seltsame Probleme mit Segmentierung Fehler. Im MyClass.cc erklärte ich eine Struktur und ein NAN_METHOD wie folgt:Nodejs native Addon seltsame Segmentierung Fehler
struct ComputeContext {
int test = 1;
};
NAN_METHOD(MyClass::Foo) {
ComputeContext ctx;
info.GetReturnValue().Set(Nan::New(true));
}
Die seltsame Dinge ist, wenn ich diese Methode von JavaScript aufrufen, das Programm beendet und mit einem Segmentierungsfehler. Wenn ich jedoch den Test nicht initiiere, z. int test;
, stürzt es nicht ab oder meldet einen Segfault. Um Segmentierungsfehler zu erkennen, verwende ich das segfault-handler-Paket.
Vielleicht hat jemand eine Ahnung, was hier vor sich geht? Als eine Randbemerkung ist MyClass :: Foo eine statische Methode, nicht sicher, ob das einen Unterschied macht.
Haben Sie versucht, es zu debuggen und zu überprüfen, welche Zeile den Absturz verursacht? – VTT
Leider habe ich die Umgebung zum Debuggen nicht eingerichtet. Ich denke, das würde erfordern, v8, libuv und node aus der Quelle zu bauen. Aber wie auch immer, der Segfault-Handler sagt, dass er bei 'info.GetReturnValue() abstürzt. Set (Nan :: New (true));'. In der Tat ist das Verhalten sehr seltsam. – justadudewhohacks
Es würde nur erfordern, Ihre Erweiterung mit Debug-Symbolen zu erstellen und es unter Debugger auszuführen. – VTT