public CreateProcessResult CreateProcess(string filename, string arguments, CreateProcessOptions options) { Logger.LogInfo("CreateProcess: {0} {1}", filename, arguments); // Attaching the debugger ensures the child process will die with the current process. var debuggerObject = new DebuggerObject(); var processInformation = (options & CreateProcessOptions.AttachDebugger) != 0 ? debuggerObject.CreateProcess(() => CreateProcessImpl(filename, arguments, options)) : CreateProcessImpl(filename, arguments, options); Logger.LogInfo("CreateProcess: Creating CreateProcessResult instance."); return(new CreateProcessResult(processInformation, debuggerObject)); }
ObjectValueNode[] IEvaluatingGroupObjectValueNode.GetEvaluationGroupReplacementNodes() { var replacementNodes = new ObjectValueNode[DebuggerObject.ArrayCount]; for (int i = 0; i < replacementNodes.Length; i++) { replacementNodes[i] = new DebuggerObjectValueNode(DebuggerObject.GetArrayItem(i)) { Parent = Parent }; } return(replacementNodes); }
public CreateProcessResult(ProcessInformation processInformation, DebuggerObject debuggerObject) { _processInformation = processInformation; _debuggerObject = debuggerObject; _process = Process.GetProcessById(processInformation.ProcessId); }
public override void Refresh() { DebuggerObject.Refresh(); }
public override bool HasFlag(ObjectValueFlags flag) => DebuggerObject.HasFlag(flag);
public override void Refresh(EvaluationOptions options) { DebuggerObject.Refresh(options); }