Ich mache meine Baby-Schritte in node.js, und ich versuche, Sandbox-Mechanismus zu verstehen.Debugging gf3/Sandbox-Modul
Derzeit verwende ich Knoten v4.0.0 und Knoten-Inspector v0.12.3.
I GF3/Sandbox-Modul installiert haben und es mit diesem einfachen Code ausführen:
var s = new Sandbox();
s.run('1 + 1 + " apples"',function(output) {
console.log(output.result);
});
Um leicht zu debuggen, ich habe auch die Timeout-Funktion in sandbox.js
Datei kommentiert:
// timer = setTimeout(function() {
// self.child.stdout.removeListener('output', output);
// stdout = JSON.stringify({ result: 'TimeoutError', console: [] });
// self.child.kill('SIGKILL');
// }, self.options.timeout);
Das Problem ist, dass das Debug nicht auf jeden Zeilencode von shovel.js
bricht, und ich bin 100% sicher, dass das Modul seinen Code verwendet.
Warum ist das? Und was kann ich tun, um shovel.js
zu debuggen?
Hallo, Danke für Ihre ausführliche Antwort. 1. Wo sollte ich diese Zeile setzen: self.child = spawn (this.options.node, ['--debug-brk = 5859', this.options.shovel], {stdio: ['pipe', 'pipe', 'pipe', 'ipc'}}); 2. Was ist "debug-brk"? Warum nicht einfach "debuggen"? 3. In den Absätzen 4 & 5 meinen Sie "node-debug" statt "node debug"? Danke. – ohadinho
1. Überprüfen Sie den ersten Link in meiner Antwort. 2,3: Meine Antwort ist für eingebautes ['debugger'] (https://nodejs.org/api/debugger.html) Modul. Deshalb ist das '--debug-brk'. Für 'node-inspector' müssen Sie eigene Befehle und Argumente verwenden, aber die Schritte sind gleich. Ich bin auf Windows und kann nicht testen, da 'node-inspector' auf Windows nicht gut spielt. – hassansin
hinzugefügt ungetestete Schritte für Knoten-Inspektor. Lass mich wissen ob es funktioniert. – hassansin