public void StopDebugger() { try { Process oldProcess; lock (this) { if (debugger == null) { return; } runningEvent.Reset(); exitedEvent.Reset(); exitRequestEvent.Set(); oldProcess = process; debugger = null; process = null; } if (!exitedEvent.WaitOne(2000, false)) { try { oldProcess.Kill(); } catch { } } } catch (Exception ex) { Console.WriteLine(ex); } }
public void RegisterDebugger (IDebuggerServer debugger) { lock (this) { this.debugger = debugger; runningEvent.Set (); } }
public void RegisterDebugger(IDebuggerServer debugger) { lock (this) { this.debugger = debugger; runningEvent.Set(); } }
public InjectionRuntime(IApiBridge bridge, IDebuggerServer debuggerServer, ITimeSource timeSource, Func <CancellationToken?> retrieveCancellationToken) { paths = new Paths(() => Path.GetDirectoryName(CurrentScript.FileName)); Api = new InjectionApi(bridge, Metadata, State, timeSource, paths); RegisterNatives(); this.bridge = bridge; this.debuggerServer = debuggerServer; this.timeSource = timeSource; this.retrieveCancellationToken = retrieveCancellationToken; CurrentScript = new ScriptFile("<empty>", string.Empty, null); interpreter = new ThreadLocal <Interpreter>(() => new Interpreter(Metadata, CurrentScript.FileName, debuggerServer.Create(), retrieveCancellationToken)); }
void ProcessExited(object sender, EventArgs args) { lock (this) { exitedEvent.Set(); Process p = (Process)sender; if (p != process) { return; } // The process suddently died runningEvent.Reset(); debugger = null; process = null; } }
public void StopDebugger () { try { Process oldProcess; lock (this) { if (debugger == null) return; runningEvent.Reset (); exitedEvent.Reset (); exitRequestEvent.Set (); oldProcess = process; debugger = null; process = null; } if (!exitedEvent.WaitOne (2000, false)) { try { oldProcess.Kill (); } catch { } } } catch (Exception ex) { Console.WriteLine (ex); } }
void ProcessExited (object sender, EventArgs args) { lock (this) { exitedEvent.Set (); Process p = (Process) sender; if (p != process) return; // The process suddently died runningEvent.Reset (); debugger = null; process = null; } }
public InjectionRuntime(IApiBridge bridge, IDebuggerServer debuggerServer, ITimeSource timeSource) { interpreter = new ThreadLocal <Interpreter>(() => new Interpreter(Metadata, CurrentFileName, debuggerServer.Create())); Api = new InjectionApi(bridge, Metadata, Globals, timeSource); RegisterNatives(); }