노드 추가 기능을 개발 중입니다. 분할 결함으로 인해 이상한 문제에 직면하고 있습니다. 나는 자바 스크립트, 프로그램이 종료로부터 세그먼트 오류이 메서드를 호출 할 때Nodejs native addon 이상한 분할 오류
struct ComputeContext {
int test = 1;
};
NAN_METHOD(MyClass::Foo) {
ComputeContext ctx;
info.GetReturnValue().Set(Nan::New(true));
}
이상한 일이있다 : 다음과 같이 MyClass.cc에서 나는 구조체와 NAN_METHOD을 선언했다. 그러나 테스트를 초기화하지 않으면 (예 : int test;
, segfault를 크래시하거나보고하지 않습니다. 세그먼테이션 결함을 감지하기 위해 segfault-handler 패키지를 사용하고 있습니다.
누군가 여기에 무슨 일이 일어나고 있는지에 대한 단서가 있습니까? sidenote로서, MyClass :: Foo는 정적 인 방법이며, 차이가 있는지 확실하지 않습니다.
디버깅을 시도하고 충돌을 일으키는 라인을 확인 했습니까? – VTT
아쉽게도 디버깅 환경을 설정하지 않았습니다. 소스에서 v8, libuv 및 node를 빌드해야한다고 생각합니다. 하지만 어쨌든 segfault 핸들러는 'info.GetReturnValue(). Set (Nan :: New (true));'에서 충돌한다고 말합니다. 실제로 그 행동은 매우 이상합니다. – justadudewhohacks
확장 기능을 디버그 기호로 빌드하고 디버거에서 실행하기 만하면됩니다. – VTT