kopia lustrzana https://github.com/c9/core
Merge pull request +15998 from c9/node-debugger
Workaround for node 9 segfaultpull/483/head
commit
39c4749d12
|
@ -78,7 +78,15 @@ function Debugger(options) {
|
|||
self.disconnect();
|
||||
});
|
||||
ws.on("message", function incoming(data) {
|
||||
try {
|
||||
var parsed = JSON.parse(data);
|
||||
} catch (e) {
|
||||
}
|
||||
// console.log("<<" + data);
|
||||
// ignore for now since this is noisy, and is not used on the client
|
||||
if (parsed && parsed.method == "Runtime.consoleAPICalled")
|
||||
return;
|
||||
|
||||
broadcast(data);
|
||||
});
|
||||
ws.on("error", function(e) {
|
||||
|
@ -128,7 +136,7 @@ function Debugger(options) {
|
|||
if (this.ws)
|
||||
this.ws.close();
|
||||
if (this.v8Socket)
|
||||
this.v8Socket.close();
|
||||
this.v8Socket.destroy();
|
||||
};
|
||||
|
||||
}).call(Debugger.prototype);
|
||||
|
|
|
@ -50,7 +50,6 @@ var DevtoolsProtocol = module.exports = function(socket) {
|
|||
// TODO add support for threads
|
||||
break;
|
||||
case "Runtime.executionContextDestroyed":
|
||||
console.log(message.params);
|
||||
this.detachDebugger();
|
||||
break;
|
||||
case "Debugger.resumed":
|
||||
|
|
|
@ -26,15 +26,25 @@ var socketPath = process.env.HOME + "/.c9/chrome.sock";
|
|||
if (IS_WINDOWS)
|
||||
socketPath = "\\\\.\\pipe\\" + socketPath.replace(/\//g, "\\");
|
||||
|
||||
var force = process.argv.indexOf("--force") != -1;
|
||||
console.log("Using socket", socketPath);
|
||||
|
||||
function checkServer(id) {
|
||||
var client = net.connect(socketPath, function() {
|
||||
if (id) return;
|
||||
console.log("process already exists");
|
||||
process.exit(0);
|
||||
if (!force) {
|
||||
console.log("process already exists");
|
||||
process.exit(0);
|
||||
}
|
||||
else {
|
||||
console.log("trying to replace existing process");
|
||||
var strMsg = JSON.stringify({ $: "exit" });
|
||||
client.write(strMsg + "\0");
|
||||
}
|
||||
});
|
||||
client.on("data", function(data) {
|
||||
if (force)
|
||||
return console.log("old pid" + data);
|
||||
try {
|
||||
var msg = JSON.parse(data.toString().slice(0, -1));
|
||||
} catch (e) {}
|
||||
|
@ -52,6 +62,13 @@ function checkServer(id) {
|
|||
|
||||
process.exit(1);
|
||||
});
|
||||
|
||||
if (force) {
|
||||
client.once("close", function() {
|
||||
if (!server)
|
||||
createServer();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
var $id = 0;
|
||||
|
|
|
@ -80,7 +80,14 @@ define(function(require, exports, module) {
|
|||
}
|
||||
|
||||
var list = breakpoints.slice(0);
|
||||
var retries = 0;
|
||||
if (list.length == 0) {
|
||||
// node v9.5 segfaults when there are no breakpoints
|
||||
list.push({
|
||||
path: "_c9_node_segfault_workaround_",
|
||||
line: 100,
|
||||
enabled: true,
|
||||
});
|
||||
}
|
||||
|
||||
listBreakpoints(function handleBps(err, remoteBreakpoints) {
|
||||
if (err) return callback(err);
|
||||
|
|
Ładowanie…
Reference in New Issue