我正在做我的寶貝在node.js中的步驟,我想了解沙箱機制。調試gf3 /沙箱模塊
目前我使用節點v4.0.0和節點檢查器v0.12.3。
我已經安裝了GF3 /沙箱模塊,並用這個簡單的代碼運行:
var s = new Sandbox();
s.run('1 + 1 + " apples"',function(output) {
console.log(output.result);
});
爲了便於調試,我也以sandbox.js
文件中所註釋的超時功能:
// timer = setTimeout(function() {
// self.child.stdout.removeListener('output', output);
// stdout = JSON.stringify({ result: 'TimeoutError', console: [] });
// self.child.kill('SIGKILL');
// }, self.options.timeout);
問題是調試不會破壞shovel.js
的任何行代碼,並且我100%確定模塊正在使用它的代碼。
這是爲什麼?我能做些什麼來調試shovel.js
?
嗨, 感謝您的詳細解答。 1.我應該在哪裏放這條線: self.child = spawn(this.options.node,['--debug-brk = 5859',this.options.shovel],{stdio:['pipe', 'pipe','pipe','ipc']}); 2.什麼是「debug-brk」?爲什麼不使用「調試」? 3.在第4節和第5節中,您的意思是「節點調試」而不是「節點調試」? 謝謝。 – ohadinho
1.檢查我的答案中的第一個鏈接。 2,3:我的回答是內置['debugger'](https://nodejs.org/api/debugger.html)模塊。這就是爲什麼'--debug-brk'。對於'node-inspector',你需要使用它自己的命令和參數,但步驟是一樣的。我在Windows上,無法測試,因爲'node-inspector'在Window上播放不好。 – hassansin
爲節點檢查員添加了未經測試的步驟。讓我知道它是否有效。 – hassansin