IEnumerable <TreeNode> LazyGetChildNodes() { foreach (DebugParameterInfo par in stackFrame.MethodInfo.GetParameters()) { string imageName; var image = ExpressionNode.GetImageForParameter(out imageName); var expression = new ExpressionNode(image, par.Name, par.GetExpression()); expression.ImageName = imageName; yield return(expression); } foreach (DebugLocalVariableInfo locVar in stackFrame.MethodInfo.GetLocalVariables(this.StackFrame.IP)) { string imageName; var image = ExpressionNode.GetImageForLocalVariable(out imageName); var expression = new ExpressionNode(image, locVar.Name, locVar.GetExpression()); expression.ImageName = imageName; yield return(expression); } if (stackFrame.Thread.CurrentException != null) { yield return(new ExpressionNode(null, "__exception", new IdentifierExpression("__exception"))); } }
IEnumerable <TreeNode> LazyGetChildNodes() { foreach (DebugParameterInfo par in stackFrame.MethodInfo.GetParameters()) { var image = ExpressionNode.GetImageForParameter(); var expression = new ExpressionNode(image, par.Name, par.GetExpression()); yield return(expression); } var ip = this.StackFrame.IP; if (ip.IsValid) { foreach (DebugLocalVariableInfo locVar in stackFrame.MethodInfo.GetLocalVariables(ip.Offset)) { var image = ExpressionNode.GetImageForLocalVariable(); var expression = new ExpressionNode(image, locVar.Name, locVar.GetExpression()); yield return(expression); } } if (stackFrame.Thread.CurrentException != null) { yield return(new ExpressionNode(null, "__exception", new IdentifierExpression("__exception"))); } }