我上个月在Electron应用程序中一直处理间歇性崩溃,但未能找到解决方案。崩溃导致Electron窗口变为空白,因为渲染器进程已停止,但主进程仍处于活动状态。
崩溃似乎与任何特定用户操作无关。该应用程序平均持续约半小时,但只能在5分钟后崩溃或运行几个小时。
我们的堆栈非常标准,包括React,Redux和Sagas。
以下是崩溃转储的例外:
在crash-43.dmp中的节点!v8 :: internal :: IncrementalMarking :: RecordWriteSlow + 1187中的汇编指令位于C:\ Users \ Motorized Precision2 \ Desktop \ mpstudio \ node_modules \ electron \ dist \ node.dll中尝试从线程0上的内存位置0x0000000b读取时,Node.js导致访问冲突异常(0xC0000005)
和堆栈跟踪:
node!v8::internal::IncrementalMarking::RecordWriteSlow+1187
node!v8::internal::StoreBuffer::StoreBufferOverflow+1786
node!v8::internal::CancelableTaskManager::TryAbort+25f
electron!GetHandleVerifier+9e849
electron!IsSandboxedProcess+22d87e6
electron!IsSandboxedProcess+22d7a36
electron!IsSandboxedProcess+22d58b4
electron!GetHandleVerifier+9e849
electron!GetHandleVerifier+47367
electron!GetHandleVerifier+45dba
electron!GetHandleVerifier+a0e86
electron!GetHandleVerifier+4283e
electron!IsSandboxedProcess+3b4634
electron!GetHandleVerifier+3463da
electron!GetHandleVerifier+3462cf
electron!GetHandleVerifier+f6d68
electron+116365
electron!IsSandboxedProcess+2cd4efb
kernel32!BaseThreadInitThunk+14
ntdll!RtlUserThreadStart+21
我仔细检查了渲染器代码,以确保处理所有侦听器/超时,现在我真的不知道接下来该做什么。这是内存泄漏还是其他什么?有人救了我们!