Exemple #1
0
        private void ShowObject(NuGenBaseValueRefresher refresher)
        {
            List <NuGenBaseValueRefresher> objects = new List <NuGenBaseValueRefresher>(1);

            objects.Add(refresher);

            ShowObjects(objects);
        }
Exemple #2
0
        public void ShowObjectInObjectViewer(FrameWrapper frame, NuGenBaseValueRefresher valueRefresher, string initialExpression)
        {
            if (objectViewer == null)
            {
                objectViewer = new NuGenObjectViewer();
            }

            objectViewer.Initialize();
            objectViewer.ShowValue(valueRefresher, frame, initialExpression);
        }
Exemple #3
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();
            }
        }
Exemple #4
0
 public void ShowObjectInObjectViewer(FrameWrapper frame, NuGenBaseValueRefresher valueRefresher, string initialExpression)
 {
     if (invokee.InvokeRequired)
     {
         invokee.Invoke(ShowObjectInObjectViewerMethod, new object[] { frame, valueRefresher, initialExpression });
     }
     else
     {
         ShowObjectInObjectViewerMethod(frame, valueRefresher, initialExpression);
     }
 }
Exemple #5
0
        private void DisplayValue(NuGenBaseValueRefresher valueRefresher, TreeNode parentNode)
        {
            fieldList.Items.Clear();
            evaluationLogListBox.Items.Clear();

            try
            {
                NuGenDebugExpressionResult debugValue = new NuGenDebugExpressionResult(EvaluationContext, valueRefresher.GetRefreshedValue());

                if (NuGenHelperFunctions.HasValueClass(debugValue.ResultValue))
                {
                    EnableControlsForEvaluation(false);
                    CancelValueFormattersDisplaying = false;
                    MissingModules     = new List <NuGenIValueFormatter>();
                    IsTypeOfValueFound = false;
                    ValueDisplayer.CreateComplexFormatter(debugValue, valueRefresher, FrameRefresher, parentNode);
                }
                else
                {
                    NuGenIValueFormatter valueFormatter = ValueDisplayer.CreateSimpleFormatter(debugValue);
                    valueFormatter.Name           = valueRefresher.Name;
                    valueFormatter.ValueRefresher = valueRefresher;
                    DisplayValueFormatter(valueFormatter);

                    if (valueFormatter is NuGenISimpleTypeValueFormatter)
                    {
                        NuGenStringValueFormatter valueTypeFormatter = new NuGenStringValueFormatter(((NuGenISimpleTypeValueFormatter)valueFormatter).GetNumberTypeName());
                        valueTypeFormatter.FieldGroup = ValueFieldGroup.ObjectInformation;
                        valueTypeFormatter.Name       = "Type of value";
                        DisplayValueFormatter(valueTypeFormatter);
                    }
                }
            }
            catch (NuGenEvaluationException evaluationException)
            {
                DisplayValueFormatter(new NuGenErrorValueFormatter("Evaluation exception", evaluationException.Message));
            }
            catch (NuGenEvaluationHandlerException evaluationHandlerException)
            {
                DisplayValueFormatter(new NuGenErrorValueFormatter("Evaluation running exception", evaluationHandlerException.Message));
            }
            catch (NugenMissingModuleException missingModuleException)
            {
                DisplayValueFormatter(new NuGenMissingModuleFormatter(missingModuleException.MissingModule));
            }
            catch (InvalidOperationException invalidOperationException)
            {
                DisplayValueFormatter(new NuGenErrorValueFormatter("Evaluation exception", invalidOperationException.Message));
            }
            catch (Exception exception)
            {
                DisplayValueFormatter(new NuGenErrorValueFormatter("Unexpected exception", exception.Message));
            }
        }
Exemple #6
0
        private void ShowObjects(List <NuGenBaseValueRefresher> objects)
        {
            for (int index = 0; index < objects.Count; index++)
            {
                NuGenBaseValueRefresher valueRefresher = objects[index];
                NuGenIValueFormatter    valueFormatter = null;

                try
                {
                    NuGenDebugExpressionResult debugValue = new NuGenDebugExpressionResult(evaluationContext, valueRefresher.GetRefreshedValue());
                    valueFormatter = ValueDisplayer.CreateSimpleFormatter(debugValue);
                }
                catch (Exception exception)
                {
                    valueFormatter = new NuGenStringValueFormatter(exception.ToString());
                }

                valueFormatter.Name           = valueRefresher.Name;
                valueFormatter.ValueRefresher = valueRefresher;

                AddValueFormatter(valueFormatter);
            }
        }
		private void ShowObject(NuGenBaseValueRefresher refresher)
		{
			List<NuGenBaseValueRefresher> objects = new List<NuGenBaseValueRefresher>(1);
			objects.Add(refresher);

			ShowObjects(objects);
		}
		private void DisplayValue(NuGenBaseValueRefresher valueRefresher, TreeNode parentNode)
		{
			fieldList.Items.Clear();
			evaluationLogListBox.Items.Clear();

			try
			{
				NuGenDebugExpressionResult debugValue = new NuGenDebugExpressionResult(EvaluationContext, valueRefresher.GetRefreshedValue());

				if (NuGenHelperFunctions.HasValueClass(debugValue.ResultValue))
				{
					EnableControlsForEvaluation(false);
					CancelValueFormattersDisplaying = false;
					MissingModules = new List<NuGenIValueFormatter>();
					IsTypeOfValueFound = false;
					ValueDisplayer.CreateComplexFormatter(debugValue, valueRefresher, FrameRefresher, parentNode);
				}
				else
				{
					NuGenIValueFormatter valueFormatter = ValueDisplayer.CreateSimpleFormatter(debugValue);
					valueFormatter.Name = valueRefresher.Name;
					valueFormatter.ValueRefresher = valueRefresher;
					DisplayValueFormatter(valueFormatter);

					if (valueFormatter is NuGenISimpleTypeValueFormatter)
					{
						NuGenStringValueFormatter valueTypeFormatter = new NuGenStringValueFormatter(((NuGenISimpleTypeValueFormatter)valueFormatter).GetNumberTypeName());
						valueTypeFormatter.FieldGroup = ValueFieldGroup.ObjectInformation;
						valueTypeFormatter.Name = "Type of value";
						DisplayValueFormatter(valueTypeFormatter);
					}
				}
			}
			catch (NuGenEvaluationException evaluationException)
			{
				DisplayValueFormatter(new NuGenErrorValueFormatter("Evaluation exception", evaluationException.Message));
			}
			catch (NuGenEvaluationHandlerException evaluationHandlerException)
			{
				DisplayValueFormatter(new NuGenErrorValueFormatter("Evaluation running exception", evaluationHandlerException.Message));
			}
			catch (NugenMissingModuleException missingModuleException)
			{
				DisplayValueFormatter(new NuGenMissingModuleFormatter(missingModuleException.MissingModule));
			}
			catch (InvalidOperationException invalidOperationException)
			{
				DisplayValueFormatter(new NuGenErrorValueFormatter("Evaluation exception", invalidOperationException.Message));
			}
			catch (Exception exception)
			{
				DisplayValueFormatter(new NuGenErrorValueFormatter("Unexpected exception", exception.Message));
			}
		}
		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();
			}
		}
		public void ShowObjectInObjectViewer(FrameWrapper frame, NuGenBaseValueRefresher valueRefresher, string initialExpression)
		{
            if(invokee.InvokeRequired)
				invokee.Invoke(ShowObjectInObjectViewerMethod, new object[]{frame, valueRefresher, initialExpression});
			else
				ShowObjectInObjectViewerMethod(frame, valueRefresher, initialExpression);
		}