新的SerialPort()引发分段错误

时间:2019-01-10 12:59:34

标签: node.js segmentation-fault

我在Jetson TX2上运行Node v8.11.3,突然而没有明显的原因,segmentation fault错误开始使我的应用程序崩溃。在注释了部分代码后,我发现导致分段错误的行是这一行:

var SerialPort = require('serialport');
const port = new SerialPort('/dev/ttyTHS2', { baudRate: 9600});
/ dev / ttyTHS2上的

我有一个通过UART连接的uBlox GPS。

如果我cat /dev/ttyTHS2,我可以完美地看到gps输出。波特率正确。

root@tegra-ubuntu:/home/nvidia/Omnibox-NodeServer-Jetson# npm start

> miniserver@0.0.0 start /home/nvidia/Omnibox-NodeServer-Jetson
> node ./bin/www

Segmentation fault (core dumped)
npm ERR! code ELIFECYCLE
npm ERR! errno 139
npm ERR! miniserver@0.0.0 start: `node ./bin/www`
npm ERR! Exit status 139
npm ERR!
npm ERR! Failed at the miniserver@0.0.0 start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2019-01-10T12_54_41_417Z-debug.log

/root/.npm/_logs/2019-01-10T12_54_41_417Z-debug.log内容:

root@tegra-ubuntu:/home/nvidia/Omnibox-NodeServer-Jetson# cat /root/.npm/_logs/2019-01-10T12_54_41_417Z-debug.log
0 info it worked if it ends with ok
1 verbose cli [ '/usr/bin/node', '/usr/bin/npm', 'start' ]
2 info using npm@5.6.0
3 info using node@v8.11.3
4 verbose run-script [ 'prestart', 'start', 'poststart' ]
5 info lifecycle miniserver@0.0.0~prestart: miniserver@0.0.0
6 info lifecycle miniserver@0.0.0~start: miniserver@0.0.0
7 verbose lifecycle miniserver@0.0.0~start: unsafe-perm in lifecycle true
8 verbose lifecycle miniserver@0.0.0~start: PATH: /usr/lib/node_modules/npm/node_modules/npm-lifecycle/node-gyp-bin:/home/nvidia/Omnibox-NodeServer-Jetson/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
9 verbose lifecycle miniserver@0.0.0~start: CWD: /home/nvidia/Omnibox-NodeServer-Jetson
10 silly lifecycle miniserver@0.0.0~start: Args: [ '-c', 'node ./bin/www' ]
11 silly lifecycle miniserver@0.0.0~start: Returned: code: 139  signal: null
12 info lifecycle miniserver@0.0.0~start: Failed to exec start script
13 verbose stack Error: miniserver@0.0.0 start: `node ./bin/www`
13 verbose stack Exit status 139
13 verbose stack     at EventEmitter.<anonymous> (/usr/lib/node_modules/npm/node_modules/npm-lifecycle/index.js:285:16)
13 verbose stack     at emitTwo (events.js:126:13)
13 verbose stack     at EventEmitter.emit (events.js:214:7)
13 verbose stack     at ChildProcess.<anonymous> (/usr/lib/node_modules/npm/node_modules/npm-lifecycle/lib/spawn.js:55:14)
13 verbose stack     at emitTwo (events.js:126:13)
13 verbose stack     at ChildProcess.emit (events.js:214:7)
13 verbose stack     at maybeClose (internal/child_process.js:925:16)
13 verbose stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:209:5)
14 verbose pkgid miniserver@0.0.0
15 verbose cwd /home/nvidia/Omnibox-NodeServer-Jetson
16 verbose Linux 4.4.38
17 verbose argv "/usr/bin/node" "/usr/bin/npm" "start"
18 verbose node v8.11.3
19 verbose npm  v5.6.0
20 error code ELIFECYCLE
21 error errno 139
22 error miniserver@0.0.0 start: `node ./bin/www`
22 error Exit status 139
23 error Failed at the miniserver@0.0.0 start script.
23 error This is probably not a problem with npm. There is likely additional logging output above.
24 verbose exit [ 139, true ]

如何解决细分错误?另外,在哪里可以看到“核心已转储”?

1 个答案:

答案 0 :(得分:0)

好像是新SerialPort 7.1.2版本中的错误。回滚到6.2.2解决了该问题。