private async Task <VariableContainerDetails> FetchVariableContainer( string scope, VariableContainerDetails autoVariables) { PSCommand psCommand = new PSCommand(); psCommand.AddCommand("Get-Variable"); psCommand.AddParameter("Scope", scope); var scopeVariableContainer = new VariableContainerDetails("Scope: " + scope); _variables.Add(scopeVariableContainer); var results = await ExecuteCommand <PSVariable>(psCommand); if (results != null) { foreach (PSVariable psvariable in results) { var variableDetails = new VariableDetails(psvariable); // { Id = this.nextVariableId++ }; _variables.Add(variableDetails); scopeVariableContainer.Children.Add(variableDetails); //.Add(variableDetails.Name, variableDetails); if ((autoVariables != null) && AddToAutoVariables(psvariable, scope)) { autoVariables.Children.Add(variableDetails); //(variableDetails.Name, variableDetails); } } } return(scopeVariableContainer); }
private async Task FetchStackFrames() { var psCommand = new PSCommand(); psCommand.AddScript("return Get-PSCallStack"); var results = await ExecuteCommand <CallStackFrame>(psCommand); var callStackFrames = results.ToArray(); var stackFrameDetails = new List <StackFrameDetails>(); //_stackFrameDetails = new StackFrameDetails[callStackFrames.Length]; for (var i = 0; i < callStackFrames.Length; i++) { var autoVariables = new VariableContainerDetails( VariableContainerDetails.AutoVariablesName); _variables.Add(autoVariables); try { var localVariables = await FetchVariableContainer(i.ToString(), autoVariables); stackFrameDetails.Add( StackFrameDetails.Create(callStackFrames[i], autoVariables, localVariables)); } catch (Exception) { } } _stackFrameDetails = stackFrameDetails.ToArray(); }
private async Task FetchGlobalAndScriptVariables() { // Retrieve globals first as script variable retrieval needs to search globals. _globalScopeVariables = await FetchVariableContainer(VariableContainerDetails.GlobalScopeName, null); _scriptScopeVariables = await FetchVariableContainer(VariableContainerDetails.ScriptScopeName, null); }
public static StackFrameDetails Create( CallStackFrame callStackFrame, VariableContainerDetails autoVariables, VariableContainerDetails localVariables) { return(new StackFrameDetails { ScriptPath = callStackFrame.ScriptName ?? "<No File>", FunctionName = callStackFrame.FunctionName, LineNumber = callStackFrame.Position.StartLineNumber, ColumnNumber = callStackFrame.Position.StartColumnNumber, AutoVariables = autoVariables, LocalVariables = localVariables }); }
public static StackFrameDetails Create( CallStackFrame callStackFrame, VariableContainerDetails autoVariables, VariableContainerDetails localVariables) { return new StackFrameDetails { ScriptPath = callStackFrame.ScriptName ?? "<No File>", FunctionName = callStackFrame.FunctionName, LineNumber = callStackFrame.Position.StartLineNumber, ColumnNumber = callStackFrame.Position.StartColumnNumber, AutoVariables = autoVariables, LocalVariables = localVariables }; }