Fix #102
This commit is contained in:
parent
f766a9f7ec
commit
656ef0d2c0
3 changed files with 11 additions and 0 deletions
|
|
@ -41,6 +41,7 @@ export class MI2 extends EventEmitter implements IBackend {
|
||||||
this.process.stdout.on("data", this.stdout.bind(this));
|
this.process.stdout.on("data", this.stdout.bind(this));
|
||||||
this.process.stderr.on("data", this.stderr.bind(this));
|
this.process.stderr.on("data", this.stderr.bind(this));
|
||||||
this.process.on("exit", (() => { this.emit("quit"); }).bind(this));
|
this.process.on("exit", (() => { this.emit("quit"); }).bind(this));
|
||||||
|
this.process.on("error", ((err) => { this.emit("launcherror", err); }).bind(this));
|
||||||
let promises = this.initCommands(target, cwd);
|
let promises = this.initCommands(target, cwd);
|
||||||
if (procArgs && procArgs.length)
|
if (procArgs && procArgs.length)
|
||||||
promises.push(this.sendCommand("exec-arguments " + procArgs));
|
promises.push(this.sendCommand("exec-arguments " + procArgs));
|
||||||
|
|
@ -196,6 +197,7 @@ export class MI2 extends EventEmitter implements IBackend {
|
||||||
this.process.stdout.on("data", this.stdout.bind(this));
|
this.process.stdout.on("data", this.stdout.bind(this));
|
||||||
this.process.stderr.on("data", this.stderr.bind(this));
|
this.process.stderr.on("data", this.stderr.bind(this));
|
||||||
this.process.on("exit", (() => { this.emit("quit"); }).bind(this));
|
this.process.on("exit", (() => { this.emit("quit"); }).bind(this));
|
||||||
|
this.process.on("error", ((err) => { this.emit("launcherror", err); }).bind(this));
|
||||||
var commands = [
|
var commands = [
|
||||||
this.sendCommand("gdb-set target-async on"),
|
this.sendCommand("gdb-set target-async on"),
|
||||||
this.sendCommand("environment-directory \"" + escape(cwd) + "\"")
|
this.sendCommand("environment-directory \"" + escape(cwd) + "\"")
|
||||||
|
|
@ -224,6 +226,7 @@ export class MI2 extends EventEmitter implements IBackend {
|
||||||
this.process.stdout.on("data", this.stdout.bind(this));
|
this.process.stdout.on("data", this.stdout.bind(this));
|
||||||
this.process.stderr.on("data", this.stderr.bind(this));
|
this.process.stderr.on("data", this.stderr.bind(this));
|
||||||
this.process.on("exit", (() => { this.emit("quit"); }).bind(this));
|
this.process.on("exit", (() => { this.emit("quit"); }).bind(this));
|
||||||
|
this.process.on("error", ((err) => { this.emit("launcherror", err); }).bind(this));
|
||||||
Promise.all([
|
Promise.all([
|
||||||
this.sendCommand("gdb-set target-async on"),
|
this.sendCommand("gdb-set target-async on"),
|
||||||
this.sendCommand("environment-directory \"" + escape(cwd) + "\""),
|
this.sendCommand("environment-directory \"" + escape(cwd) + "\""),
|
||||||
|
|
|
||||||
|
|
@ -29,6 +29,7 @@ export class MI2_LLDB extends MI2 {
|
||||||
this.process.stdout.on("data", this.stdout.bind(this));
|
this.process.stdout.on("data", this.stdout.bind(this));
|
||||||
this.process.stderr.on("data", this.stderr.bind(this));
|
this.process.stderr.on("data", this.stderr.bind(this));
|
||||||
this.process.on("exit", (() => { this.emit("quit"); }).bind(this));
|
this.process.on("exit", (() => { this.emit("quit"); }).bind(this));
|
||||||
|
this.process.on("error", ((err) => { this.emit("launcherror", err); }).bind(this));
|
||||||
Promise.all([
|
Promise.all([
|
||||||
this.sendCommand("gdb-set target-async on"),
|
this.sendCommand("gdb-set target-async on"),
|
||||||
this.sendCommand("file-exec-and-symbols \"" + escape(executable) + "\""),
|
this.sendCommand("file-exec-and-symbols \"" + escape(executable) + "\""),
|
||||||
|
|
|
||||||
|
|
@ -39,6 +39,7 @@ export class MI2DebugSession extends DebugSession {
|
||||||
}
|
}
|
||||||
|
|
||||||
protected initDebugger() {
|
protected initDebugger() {
|
||||||
|
this.miDebugger.on("launcherror", this.launchError.bind(this));
|
||||||
this.miDebugger.on("quit", this.quitEvent.bind(this));
|
this.miDebugger.on("quit", this.quitEvent.bind(this));
|
||||||
this.miDebugger.on("exited-normally", this.quitEvent.bind(this));
|
this.miDebugger.on("exited-normally", this.quitEvent.bind(this));
|
||||||
this.miDebugger.on("stopped", this.stopEvent.bind(this));
|
this.miDebugger.on("stopped", this.stopEvent.bind(this));
|
||||||
|
|
@ -109,6 +110,12 @@ export class MI2DebugSession extends DebugSession {
|
||||||
this.sendEvent(new TerminatedEvent());
|
this.sendEvent(new TerminatedEvent());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected launchError(err: any) {
|
||||||
|
this.handleMsg("stderr", "Could not start debugger process, does the program exist in filesystem?\n");
|
||||||
|
this.handleMsg("stderr", err.toString() + "\n");
|
||||||
|
this.quitEvent();
|
||||||
|
}
|
||||||
|
|
||||||
protected disconnectRequest(response: DebugProtocol.DisconnectResponse, args: DebugProtocol.DisconnectArguments): void {
|
protected disconnectRequest(response: DebugProtocol.DisconnectResponse, args: DebugProtocol.DisconnectArguments): void {
|
||||||
if (this.attached)
|
if (this.attached)
|
||||||
this.miDebugger.detach();
|
this.miDebugger.detach();
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue