private PythonProcess(int pid, PythonDebugOptions debugOptions) { _pid = pid; _process = Process.GetProcessById(pid); _process.EnableRaisingEvents = true; _process.Exited += new EventHandler(_process_Exited); ListenForConnection(); using (var result = DebugAttach.AttachAD7(pid, DebugConnectionListener.ListenerPort, _processGuid, debugOptions.ToString())) { if (result.Error != ConnErrorMessages.None) { throw new ConnectionException(result.Error); } _langVersion = (PythonLanguageVersion)result.LanguageVersion; if (!result.AttachDone.WaitOne(20000)) { throw new ConnectionException(ConnErrorMessages.TimeOut); } } }
private PythonProcess(Stream stream, int pid, PythonLanguageVersion version, PythonDebugOptions debugOptions) { _pid = pid; _process = Process.GetProcessById(pid); _process.EnableRaisingEvents = true; _process.Exited += new EventHandler(_process_Exited); _delayUnregister = true; ListenForConnection(); stream.WriteInt32(DebugConnectionListener.ListenerPort); stream.WriteString(_processGuid.ToString()); stream.WriteString(debugOptions.ToString()); }