Пример #1
0
 private void _debuggerEvents_OnExceptionNotHandled(string exceptionType,
                                                    string name,
                                                    int code,
                                                    string description,
                                                    ref dbgExceptionAction exceptionAction)
 {
     FireLastEvent();
     StartEvent(DebuggerMode.ExceptionNotHandled, name, exceptionAction.ToString());
 }
Пример #2
0
 public void OnExceptionNotHandled(
     string A_1,
     string A_2,
     int A_3,
     string A_4,
     ref dbgExceptionAction A_5)
 {
     throw new NotImplementedException();
 }
Пример #3
0
 public void OnExceptionNotHandled
 (
     string ExceptionType,
     string Name,
     int Code,
     string Description,
     ref dbgExceptionAction ExceptionAction
 )
 {
     System.Windows.Forms.MessageBox.Show
         ("Exteption not handled.\n" +
         "Code: " + Code.ToString() +
         "\nDescription: " + Description +
         "\nException Type: " + ExceptionType +
         "\nException Action: " + ExceptionAction.ToString());
 }
Пример #4
0
        private void OnExceptionNotHandled(string exceptionType, string name, int code, string description, ref dbgExceptionAction exceptionAction)
        {
            Options options = ((Options)m_plugin.Options);

            if (options.IgnoreDebuggerExceptions)
            {
                exceptionAction = dbgExceptionAction.dbgExceptionActionContinue;
            }
            else if (options.SilentDebuggerExceptions)
            {
                exceptionAction = dbgExceptionAction.dbgExceptionActionBreak;
            }
        }
Пример #5
0
 private void DebuggerEvents_OnExceptionThrown(string ExceptionType, string Name, int Code, string Description, ref dbgExceptionAction ExceptionAction)
 {
     SetSoundForSingleEvent(IDEEventType.Exception, false);
 }
Пример #6
0
 public void ExceptionHandler(string ExceptionType, string Name, int code, string Description, ref dbgExceptionAction ExceptionAction)
 {
     System.Windows.Forms.MessageBox.Show("Exception thrown. " +
                                          "Reason: " + ExceptionType.ToString());
 }
Пример #7
0
 public static void DebugEvents_OnExceptionThrown(string ExceptionType, string Name, int Code, string Description, ref dbgExceptionAction ExceptionAction)
 {
 }
Пример #8
0
        private void HandleException(string exceptionType, string name, int code, string description, ref dbgExceptionAction exceptionAction)
        {
            var ex = new ExceptionEvent();

            var debugger = Dte.Debugger as Debugger4;

            if (debugger != null)
            {
                //not sure when the current thread could be NULL, but you never know with
                //the DTE.
                if (debugger.CurrentThread != null)
                {
                    foreach (StackFrame dteFrame in debugger.CurrentThread.StackFrames)
                    {
                        ex.StackFrames.Add(TypeConverters.VsStackFrameToStackFrame(dteFrame));
                    }
                }
            }

            //the stuff inside this try will be null if there isn't an open document
            //window (rare, but possible)
            try
            {
                TextSelection debugSelection = Dte.ActiveDocument.Selection;
                debugSelection.SelectLine();
                ex.LineContent  = debugSelection.Text;
                ex.LineNumber   = debugSelection.CurrentLine;
                ex.DocumentName = Dte.ActiveDocument.Name;
            }
            catch (Exception)
            {
                ex.LineContent  = string.Empty;
                ex.LineNumber   = 0;
                ex.DocumentName = Dte.Solution.FullName;
            }

            ex.ExceptionAction      = (int)exceptionAction;
            ex.ExceptionCode        = code;
            ex.ExceptionDescription = description;
            ex.ExceptionName        = name;
            ex.ExceptionType        = exceptionType;
            ex.SolutionName         = Dte.Solution.FullName;
            NotifyEventCreated(this, new EventCreatedArgs(ex));

            CheckInterventionStatus();
        }
Пример #9
0
 public virtual void OnExceptionThrown(string ExceptionType, string Name, int Code, string Description, ref dbgExceptionAction ExceptionAction)
 {
 }
        //protected OptionPageGrid Settings
        //{
        //    get { return (OptionPageGrid)GetDialogPage(typeof(OptionPageGrid)); }
        //}

        #endregion

        #region Exception Events

        private void OnExceptionNotHandled(string ExceptionType, string Name, int Code, string Description, ref dbgExceptionAction ExceptionAction)
        {
            Description = "{\"<user xmlns=''> was not expected.}";
            //I'm gonna give the dev dude who named the arguments in parameter with uppercase a spanking
            _lastException = new LastException {
                ExceptionType = ExceptionType, Name = Name, Code = Code, Description = Description, ExceptionAction = ExceptionAction
            };
            System.Diagnostics.Debug.WriteLine("NsdfdsotHandled\n");
            System.Diagnostics.Debug.WriteLine("Debug\n");
        }
Пример #11
0
 public override void OnExceptionNotHandled(string exceptionType, string name, int code, string description, ref dbgExceptionAction exceptionAction)
 {
     base.OnExceptionNotHandled(exceptionType, name, code, description, ref exceptionAction);
     HandleException(exceptionType, name, code, description, ref exceptionAction);
 }
Пример #12
0
            protected void OnExceptionNotHandled(string exceptionType, string name, int code, string description, ref dbgExceptionAction exceptionAction)
            {
                Options options = ((Options)m_plugin.Options);

                if (options.IgnoreDebuggerExceptions)
                {
                    exceptionAction = dbgExceptionAction.dbgExceptionActionContinue;
                }
                else if (options.SilentDebuggerExceptions)
                {
                    exceptionAction = dbgExceptionAction.dbgExceptionActionBreak;
                }
            }
Пример #13
0
 public virtual void OnExceptionThrown(string exceptionType, string name, int code, string description, ref dbgExceptionAction exceptionAction)
 {
 }
Пример #14
0
        private void HandleException(string ExceptionType, string Name, int Code, string Description, ref dbgExceptionAction ExceptionAction)
        {
            ExceptionEvent ex           = new ExceptionEvent();
            int            depthCounter = 0;

            EnvDTE90a.Debugger4 debugger = dte.Debugger as EnvDTE90a.Debugger4;

            if (debugger != null)
            {
                //not sure when the current thread could be NULL, but you never know with
                //the DTE.
                if (debugger.CurrentThread != null)
                {
                    foreach (EnvDTE.StackFrame dteFrame in debugger.CurrentThread.StackFrames)
                    {
                        EnvDTE90a.StackFrame2 frame      = (StackFrame2)dteFrame;
                        Models.StackFrame     modelFrame = new Models.StackFrame(frame);
                        modelFrame.Depth = depthCounter;
                        ex.StackFrames.Add(modelFrame);
                        depthCounter++;
                    }
                }
            }

            //the stuff inside this try will be null if there isn't an open document
            //window (rare, but possible)
            try
            {
                TextSelection debugSelection = dte.ActiveDocument.Selection;
                debugSelection.SelectLine();
                ex.LineContent  = debugSelection.Text;
                ex.LineNumber   = debugSelection.CurrentLine;
                ex.DocumentName = dte.ActiveDocument.Name;
            }
            catch (Exception)
            {
                ex.LineContent  = "";
                ex.LineNumber   = 0;
                ex.DocumentName = dte.Solution.FullName;
            }

            ex.EventDate            = DateTime.UtcNow;
            ex.ExceptionAction      = (int)ExceptionAction;
            ex.ExceptionCode        = Code;
            ex.ExceptionDescription = Description;
            ex.ExceptionName        = Name;
            ex.ExceptionType        = ExceptionType;
            ex.SolutionName         = dte.Solution.FullName;
            NotifyEventCreated(this, new EventCreatedArgs(ex));
        }
Пример #15
0
 public override void OnExceptionNotHandled(string ExceptionType, string Name, int Code, string Description, ref dbgExceptionAction ExceptionAction)
 {
     base.OnExceptionNotHandled(ExceptionType, Name, Code, Description, ref ExceptionAction);
     HandleException(ExceptionType, Name, Code, Description, ref ExceptionAction);
 }
Пример #16
0
 void OnNotHandledException(
     string ExceptionType,
     string Name,
     int Code,
     string Description,
     ref dbgExceptionAction ExceptionAction)
 {
     ExceptionAction = dbgExceptionAction.dbgExceptionActionDefault;
 }
Пример #17
0
        void OnExceptionThrown(
            string ExceptionType,
            string Name,
            int Code,
            string Description,
            ref dbgExceptionAction Action)
        {
            EnvDTE.StackFrame topFrame = _applicationObject.Debugger.CurrentStackFrame;
            if (topFrame.Language == "C++")
            {
                var stackFrames = _applicationObject.Debugger.CurrentThread.StackFrames.GetEnumerator();
                while (stackFrames.MoveNext())
                {
                    if (((EnvDTE.StackFrame)stackFrames.Current).FunctionName == "_CxxThrowException")
                    {
                        break;
                    }
                }

                if (stackFrames.MoveNext())
                {
                    topFrame = (EnvDTE.StackFrame)stackFrames.Current;
                }
            }

            if (topFrame != null)
            {
                foreach (ExceptionHandler handler in _handlers)
                {
                    ExceptionAction? action = handler.Handle(topFrame);
                    if (action.HasValue)
                    {
                        Action = ConvertExceptionAction(action.Value);
                        _output.OutputString("\nFiltered: " + Name);
                        return;
                    }
                }

                PrintFrame(topFrame);
            }

            Action = dbgExceptionAction.dbgExceptionActionDefault;
        }
 private void OnExceptionThrown(string ExceptionType, string Name, int Code, string Description, ref dbgExceptionAction ExceptionAction)
 {
     System.Diagnostics.Debug.WriteLine("Thrown\n");
 }