节点 js 脚本崩溃:进程已完成,退出代码为 139(被信号 11 中断:SIGSEGV)

node js script crashes: Process finished with exit code 139 (interrupted by signal 11: SIGSEGV)

我的脚本崩溃了,调试器无法捕获错误。我什至尝试尝试捕捉一些功能,但它没有用。

关于如何缩小问题范围的任何建议?

脚本为游戏测试脚本。它适用于以前的游戏,但对于新游戏有一些新情况。不幸的是我不知道错误在哪里。可能是从服务器接收到唯一案例对象时。

脚本正在针对服务器进行测试并将输出写入控制台或文件。在这两种情况下都会发生错误。

错误:Process finished with exit code 139 (interrupted by signal 11: SIGSEGV)

编辑:

这里是 SegfaultHandler 输出:

PID 2645 received SIGSEGV for address: 0x0 0 segfault-handler.node 0x00000001034ae1c8 _ZL16segfault_handleriP9__siginfoPv + 280 1 libsystem_platform.dylib 0x00007fff9364b52a _sigtramp + 26 2 ??? 0x0000000000000010 0x0 + 16 3 node 0x000000010067bbdc _ZN2v88internal23Runtime_GetFrameDetailsEiPPNS0_6ObjectEPNS0_7IsolateE + 2364 4 ??? 0x00000a107710961b 0x0 + 11065833330203 5 ??? 0x00000a107795c134 0x0 + 11065842057524

退出代码 (139) 表示发生了段错误(128 + 11(对于段错误))。

您可以使用segfault-handler模块来调试段错误。你可以像这样使用它:

var SegfaultHandler = require('segfault-handler');

SegfaultHandler.registerHandler("crash.log"); // With no argument, SegfaultHandler will generate a generic log file name

// Write the cause that causes the segmentation fault here

您应该会看到一个堆栈跟踪,您现在可以使用 objdump -dS module.node.

等工具对其进行调试

objdump 显示有关一个或多个目标文件的信息。