Electron应用程序自发崩溃,没有错误日志和0退出代码

cotxawn7  于 8个月前  发布在  Electron
关注(0)|答案(1)|浏览(189)

我正在开发一个Electron应用程序,

  • 第一个月
  • [[email protected]](https://stackoverflow.com/cdn-cgi/l/email-protection)
  • @journeyapps/ [[email protected]](https://stackoverflow.com/cdn-cgi/l/email-protection)
  • @electron-force/ [[email protected]](https://stackoverflow.com/cdn-cgi/l/email-protection)
  • [[email protected]](https://stackoverflow.com/cdn-cgi/l/email-protection)
  • 节点v18.16.0
  • 其他各种依赖关系

我在开发过程中使用Map到electron-forge startnpm run start-electron运行应用程序。下面我将描述的症状在我的机器(Ubuntu 20.04)上开发过程中经常发生。我还收到报告说,这发生在应用程序的早期访问分布式版本中-这些报告目前未经验证,但涉及Windows和Linux系统。

这是怎么回事

应用程序主进程经常突然退出,没有任何警告或明确的原因。node进程退出,我被拖回终端。

  • 终端窗口中没有日志输出。
  • 我为uncaughtExceptionunhandledRejection注册了处理程序;它们没有捕获事件。
  • Electron的before-quit事件注册了一个处理程序。处理程序实现负责在用户启动的关机过程中进行清理。当应用程序消失时,此处理程序不会被调用。
  • 进程退出代码($?)始终为0
  • 应用程序的单次启动可以稳定数小时,然后突然终止。其他启动几乎立即终止,实际上无法使用。
  • 有足够的内存可用(目前,10千兆字节的物理未使用的机器上)。该应用程序没有表现出任何失控的内存使用,我已经看到。
  • 我注意到,退出 * 可能 * 是在Sequelize查询运行后发生的(这些被记录到控制台)。这很难验证,因为它不是一个特定的查询,禁用Sequelize是不可行的,因为整个应用程序都是建立在它上面的。
  • BrowserWindow示例保持为全局示例,以避免垃圾回收。
  • 我使用ELECTRON_ENABLE_LOGGING=1ELECTRON_ENABLE_STACK_DUMPING=1

我目前不知道如何进行调试。我很少使用原生应用程序,即进程,因为我通常专注于Web应用程序,而这个Electron项目是一个罕见的项目。
由于退出代码是0,我认为实际上有东西向主进程发送了退出事件。但我无法使用Electron的任何退出相关事件来查看或捕获此事件。我错过了哪些步骤?

bpsygsoo

bpsygsoo1#

我也遇到了这个问题,问题出在加密数据库(@journeyapps/sqlcipher). https://github.com/TryGhost/node-sqlite3/issues/1543

相关问题