调试断言失败

时间:2015-10-07 10:46:46

标签: c++ runtime runtime-error

我正在做一个nodejs插件。下面的代码是进行语音识别的最后一个例程的一部分:

char * resultado = Julius[cliente_id].NotifyCallbackLoop("random");
float cm = Julius[cliente_id].ReturnCM();
Julius[cliente_id].~SREngineJulius();
cout << "End Recognition - Client -->" << cliente_id << endl;

// create a ISO-8859-1 a.k.a. Latin1 string
const uint8_t* octets = reinterpret_cast<const uint8_t*>(result);
Local<String> devolve = String::NewFromOneByte(isolate, octets);


Local<Number> num = Number::New(isolate, cm);

Local<Object> obj = Object::New(isolate);
obj->Set(String::NewFromUtf8(isolate, "cm"), num);          
obj->Set(String::NewFromUtf8(isolate, "recog"), devolve);   //C++--->JS
args.GetReturnValue().Set(obj);

如果result是像“home”这样的小词,那么对于服务器所拥有的许多用户来说,这样做会很好。但如果这个词更大,就像“信号处理实验室”一样,服务器会在插件中崩溃。在调试之后,我得出结论,在"End Recognition - Client -->"之前,插件将运行没有问题。然后会出现此错误:

  

Debug Assertion失败!
  文件:f:\ vctools \ crt \ crtw32 \ misc \ dbgheap.c   行:1322

     

表达式:_CrtIsValidHeapPointer(pUserData)

1 个答案:

答案 0 :(得分:0)

正如@molbdino所说,析构函数会导致问题。删除它将解决&#34; Debug Assertion Failed&#34;。