Example #1
0
        public void ShowValue(NuGenBaseValueRefresher valueRefresher, FrameWrapper frame, string initialExpression)
        {
            if (frame == null)
            {
                MessageBox.Show("There is no active frame and thus expressions cannot be evaluated.\n\nFrames can be changed by using the Call Stack Panel", "No active frame", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
            else
            {
                if (!IsHandleCreated)
                {
                    CreateHandle();
                }

                objectTree.Sorted = false;

                UpdateDisplayedValue    = false;
                objectTree.SelectedNode = RootNode;
                UpdateDisplayedValue    = true;

                NuGenIValueFormatter rootValueFormatter = new NuGenRootValueFormatter("Viewed object");
                rootValueFormatter.ValueRefresher = valueRefresher;
                rootValueFormatter.FieldNode      = RootNode;
                RootNode.Tag  = rootValueFormatter;
                RootNode.Text = rootValueFormatter.Name;

                FrameRefresher = new NuGenFrameRefresher(NuGenDebugEventHandler.Instance.EventObjects.Thread, frame.ChainIndex, frame.FrameIndex, frame.IsActiveFrame);

                ProcessWrapper         processWrapper    = NuGenDebugEventHandler.Instance.EventObjects.Thread.GetProcess();
                NuGenEvaluationHandler evaluationHandler = new NuGenEvaluationHandler(FrameRefresher);
                EvalWrapper            evalWrapper       = NuGenDebugEventHandler.Instance.EventObjects.Thread.CreateEval();
                EvaluationContext = new NuGenEvaluationContext(processWrapper, evaluationHandler, evalWrapper, NuGenDebugEventHandler.Instance.EventObjects.Thread);
                ValueDisplayer    = new NuGenValueDisplayer(evaluationContext);
                ValueDisplayer.ArrayElementEvaluated += new ArrayElementEvaluatedDelegate(ValueDisplayer_ArrayElementEvaluated);
                ValueDisplayer.ErrorOccurred         += new ErrorOccurredDelegate(ValueDisplayer_ErrorOccurred);
                ValueDisplayer.EvaluatedNull         += new EvaluatedNullDelegate(ValueDisplayer_EvaluatedNull);
                ValueDisplayer.FieldEvaluated        += new FieldEvaluatedDelegate(ValueDisplayer_FieldEvaluated);
                ValueDisplayer.PropertyEvaluated     += new PropertyEvaluatedDelegate(ValueDisplayer_PropertyEvaluated);
                ValueDisplayer.StateChanging         += new StateChangingDelegate(ValueDisplayer_StateChanging);
                ValueDisplayer.StringValueEvaluated  += new StringValueEvaluatedDelegate(ValueDisplayer_StringValueEvaluated);
                ValueDisplayer.ToStringEvaluated     += new ToStringEvaluatedDelegate(ValueDisplayer_ToStringEvaluated);
                ValueDisplayer.TypeInspected         += new TypeInspectedDelegate(ValueDisplayer_TypeInspected);

                if (valueRefresher != null)
                {
                    DisplayValue(valueRefresher, RootNode);
                }

                fieldList.Sort();
                objectTree.Sorted = true;
                DisplayExpressionText(initialExpression);
                expressionComboBox.Update();
                ActiveControl = expressionComboBox;
                ShowDialog();
            }
        }
Example #2
0
        protected override void OnInitializePanel()
        {
            base.OnInitializePanel();

            if (NuGenDebugEventHandler.Instance.EventObjects.Thread != null)
            {
                if (ActiveFrame == null)
                {
                    NuGenUIHandler.Instance.DisplayUserWarning("No stack frame information is available at the location.");
                }
                else if (!ActiveFrame.IsILFrame() && Mode != ObjectsPanelMode.Watch)
                {
                    switch (Mode)
                    {
                    case ObjectsPanelMode.Arguments:
                        NuGenUIHandler.Instance.DisplayUserWarning("The current frame is native therefore arguments are not available.");
                        break;

                    case ObjectsPanelMode.AutoObjects:
                        NuGenUIHandler.Instance.DisplayUserWarning("The current frame is native therefore auto objects are not available.");
                        break;

                    case ObjectsPanelMode.LocalVariables:
                        NuGenUIHandler.Instance.DisplayUserWarning("The current frame is native therefore local variables are not available.");
                        break;
                    }
                }
                else
                {
                    EvalWrapper evalWrapper = NuGenDebugEventHandler.Instance.EventObjects.Thread.CreateEval();
                    EvaluationContext = new NuGenEvaluationContext(NuGenDebugEventHandler.Instance.EventObjects.Process, new NuGenEvaluationHandler(ActiveFrameRefresher), evalWrapper, NuGenDebugEventHandler.Instance.EventObjects.Thread);
                    ValueDisplayer    = new NuGenValueDisplayer(EvaluationContext);

                    switch (Mode)
                    {
                    case ObjectsPanelMode.Arguments:
                        DisplayArguments();
                        break;

                    case ObjectsPanelMode.AutoObjects:
                        DisplayCurrentException();
                        break;

                    case ObjectsPanelMode.LocalVariables:
                        DisplayLocalVariables();
                        break;

                    case ObjectsPanelMode.Watch:
                        DisplayWatchExpressions();
                        break;
                    }
                }
            }
        }
		private void debugEventHandler_EvaluationComplete(EvalWrapper evalWrapper)
		{
			IsFrameValid = false;
		}
Example #4
0
 private void debugEventHandler_EvaluationComplete(EvalWrapper evalWrapper)
 {
     IsFrameValid = false;
 }