Example #1
0
        public int Event(
            IDebugEngine2 pEngine,
            IDebugProcess2 pProcess,
            IDebugProgram2 pProgram,
            IDebugThread2 pThread,
            IDebugEvent2 pEvent,
            ref Guid riidEvent,
            uint dwAttrib
            )
        {
            if (riidEvent == typeof(IDebugProgramCreateEvent2).GUID)
            {
                RaiseStartEvent();
            }
            else if (riidEvent == typeof(IDebugMessageEvent2).GUID)
            {
                IDebugMessageEvent2 debugMessageEvent = pEvent as IDebugMessageEvent2;

                enum_MESSAGETYPE[] messageTypes = new enum_MESSAGETYPE[2];
                messageTypes[0] = enum_MESSAGETYPE.MT_OUTPUTSTRING;
                messageTypes[1] = enum_MESSAGETYPE.MT_REASON_TRACEPOINT;
                string message;
                uint   dwType;
                string helpFilename;
                uint   helpId;

                debugMessageEvent.GetMessage(messageTypes, out message, out dwType, out helpFilename, out helpId);

                // MessageEvents always have a \n on the end
                message = message.TrimEnd(Environment.NewLine.ToCharArray());

                RaiseDebugMessageEvent(message);
            }
            return(0);
        }
Example #2
0
 public AD7MessageEvent(string msg, enum_MESSAGETYPE messageType, bool isAsync, Severity severity)
 {
     _message     = msg;
     _messageType = messageType;
     _isAsync     = isAsync;
     _severity    = severity;
 }
Example #3
0
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

        public int OnError(IDebugEngine2 pEngine, IDebugProcess2 pProcess, IDebugProgram2 pProgram, IDebugThread2 pThread, IDebugEvent2 pEvent, ref Guid riidEvent, uint dwAttrib)
        {
            LoggingUtils.PrintFunction();

            try
            {
                DebugEngineEvent.Error errorEvent = pEvent as DebugEngineEvent.Error;

                enum_MESSAGETYPE [] messageType = new enum_MESSAGETYPE [1];

                string errorFormat, errorHelpFileName;

                int errorReason;

                uint errorType, errorHelpId;

                LoggingUtils.RequireOk(errorEvent.GetErrorMessage(messageType, out errorFormat, out errorReason, out errorType, out errorHelpFileName, out errorHelpId));

                LoggingUtils.RequireOk(m_debuggerConnectionService.LaunchDialogUpdate(errorFormat, true));

                return(VSConstants.S_OK);
            }
            catch (Exception e)
            {
                LoggingUtils.HandleException(e);

                return(VSConstants.E_FAIL);
            }
        }
 public OutputMessage(string message, enum_MESSAGETYPE messageType, Severity severity, uint errorCode = 0)
 {
     this.Message       = message;
     this.MessageType   = messageType;
     this.SeverityValue = severity;
     this.ErrorCode     = errorCode;
 }
Example #5
0
 public OutputMessage(string message, enum_MESSAGETYPE messageType, Severity severity, uint errorCode = 0)
 {
     this.Message = message;
     this.MessageType = messageType;
     this.SeverityValue = severity;
     this.ErrorCode = errorCode;
 }
 public DebugErrorEvent(enum_EVENTATTRIBUTES attributes, enum_MESSAGETYPE messageType, string format, int reason, MessageBoxIcon severity, string helpFileName = null, uint helpId = 0)
     : base(attributes)
 {
     _messageType  = messageType;
     _format       = format;
     _reason       = reason;
     _severity     = severity;
     _helpFileName = helpFileName;
     _helpId       = helpId;
 }
Example #7
0
        public DebugMessageEvent(enum_EVENTATTRIBUTES attributes, enum_MESSAGETYPE messageType, string message, MessageBoxIcon severity, string helpFileName = null, uint helpId = 0)
            : base(attributes)
        {
            Contract.Requires<ArgumentNullException>(message != null, "message");
            Contract.Requires<ArgumentException>(!string.IsNullOrEmpty(message));

            _messageType = messageType;
            _message = message;
            _severity = severity;
            _helpFileName = helpFileName;
            _helpId = helpId;
        }
        public DebugMessageEvent(enum_EVENTATTRIBUTES attributes, enum_MESSAGETYPE messageType, string message, MessageBoxIcon severity, string helpFileName = null, uint helpId = 0)
            : base(attributes)
        {
            Contract.Requires <ArgumentNullException>(message != null, "message");
            Contract.Requires <ArgumentException>(!string.IsNullOrEmpty(message));

            _messageType  = messageType;
            _message      = message;
            _severity     = severity;
            _helpFileName = helpFileName;
            _helpId       = helpId;
        }
Example #9
0
 public void OnOutputMessage(string outputMessage, enum_MESSAGETYPE messageType)
 {
     try
     {
         var eventObject = new AD7MessageEvent(outputMessage, messageType, isAsync: false, severity: AD7MessageEvent.Severity.Warning);
         Send(eventObject, AD7MessageEvent.IID, null);
     }
     catch
     {
         // Since we are often trying to report an exception, if something goes wrong we don't want to take down the process,
         // so ignore the failure.
     }
 }
Example #10
0
        public int GetMessage(enum_MESSAGETYPE[] pMessageType, out string pbstrMessage, out uint pdwType, out string pbstrHelpFileName, out uint pdwHelpId)
        {
            if (pMessageType == null)
                throw new ArgumentNullException("pMessageType");
            if (pMessageType.Length == 0)
                throw new ArgumentException();

            pMessageType[0] = _messageType;
            pbstrMessage = _message;
            pdwType = (uint)_severity;
            pbstrHelpFileName = _helpFileName;
            pdwHelpId = _helpId;
            return VSConstants.S_OK;
        }
Example #11
0
 public AD7MessageEvent(string msg, enum_MESSAGETYPE messageType, bool isAsync, Severity severity)
 {
     _message = msg;
     _messageType = messageType;
     _isAsync = isAsync;
     _severity = severity;
 }
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

    public int OnError (IDebugEngine2 pEngine, IDebugProcess2 pProcess, IDebugProgram2 pProgram, IDebugThread2 pThread, IDebugEvent2 pEvent, ref Guid riidEvent, uint dwAttrib)
    {
      LoggingUtils.PrintFunction ();

      try
      {
        DebugEngineEvent.Error errorEvent = pEvent as DebugEngineEvent.Error;

        enum_MESSAGETYPE [] messageType = new enum_MESSAGETYPE [1];

        string errorFormat, errorHelpFileName;

        int errorReason;

        uint errorType, errorHelpId;

        LoggingUtils.RequireOk (errorEvent.GetErrorMessage (messageType, out errorFormat, out errorReason, out errorType, out errorHelpFileName, out errorHelpId));

        LoggingUtils.RequireOk (m_debuggerConnectionService.LaunchDialogUpdate (errorFormat, true));

        return VSConstants.S_OK;
      }
      catch (Exception e)
      {
        LoggingUtils.HandleException (e);

        return VSConstants.E_FAIL;
      }
    }
Example #13
0
 int IDebugErrorEvent2.GetErrorMessage(enum_MESSAGETYPE[] pMessageType, out string errorFormat, out int hrErrorReason, out uint pdwType, out string helpFilename, out uint pdwHelpId)
 {
     hrErrorReason = unchecked((int)_outputMessage.ErrorCode);
     return AD7MessageEvent.ConvertMessageToAD7(_outputMessage, pMessageType, out errorFormat, out pdwType, out helpFilename, out pdwHelpId);
 }
      int IDebugMessageEvent2.GetMessage (enum_MESSAGETYPE [] pMessageType, out string pbstrMessage, out uint pdwType, out string pbstrHelpFileName, out uint pdwHelpId)
      {
        pMessageType [0] = ((m_msgBoxPrompt) ? enum_MESSAGETYPE.MT_MESSAGEBOX : enum_MESSAGETYPE.MT_OUTPUTSTRING) & enum_MESSAGETYPE.MT_TYPE_MASK;

        pbstrMessage = m_userMessage;

        pdwType = 0;

        pbstrHelpFileName = string.Empty;

        pdwHelpId = 0;

        return Constants.S_OK;
      }
Example #15
0
        internal static int ConvertMessageToAD7(OutputMessage outputMessage, enum_MESSAGETYPE[] pMessageType, out string pbstrMessage, out uint pdwType, out string pbstrHelpFileName, out uint pdwHelpId)
        {
            const uint MB_ICONERROR = 0x00000010;
            const uint MB_ICONWARNING = 0x00000030;

            pMessageType[0] = outputMessage.MessageType;
            pbstrMessage = outputMessage.Message;
            pdwType = 0;
            if ((outputMessage.MessageType & enum_MESSAGETYPE.MT_TYPE_MASK) == enum_MESSAGETYPE.MT_MESSAGEBOX)
            {
                switch (outputMessage.SeverityValue)
                {
                    case OutputMessage.Severity.Error:
                        pdwType |= MB_ICONERROR;
                        break;

                    case OutputMessage.Severity.Warning:
                        pdwType |= MB_ICONWARNING;
                        break;
                }
            }

            pbstrHelpFileName = null;
            pdwHelpId = 0;

            return Constants.S_OK;
        }
Example #16
0
 int IDebugMessageEvent2.GetMessage(enum_MESSAGETYPE[] pMessageType, out string pbstrMessage, out uint pdwType, out string pbstrHelpFileName, out uint pdwHelpId)
 {
     return ConvertMessageToAD7(_outputMessage, pMessageType, out pbstrMessage, out pdwType, out pbstrHelpFileName, out pdwHelpId);
 }
      public int GetErrorMessage (enum_MESSAGETYPE [] pMessageType, out string pbstrErrorFormat, out int phrErrorReason, out uint pdwType, out string pbstrHelpFileName, out uint pdwHelpId)
      {
        LoggingUtils.PrintFunction ();

        pMessageType [0] = ((m_errorIsCritical) ? enum_MESSAGETYPE.MT_MESSAGEBOX : enum_MESSAGETYPE.MT_OUTPUTSTRING) & enum_MESSAGETYPE.MT_TYPE_MASK;

        pbstrErrorFormat = m_errorMessage;

        phrErrorReason = 0;

        pdwType = 0x10;

        pbstrHelpFileName = string.Empty;

        pdwHelpId = 0;

        return Constants.S_OK;
      }
Example #18
0
        int IDebugMessageEvent2.GetMessage(enum_MESSAGETYPE[] pMessageType, out string pbstrMessage, out uint pdwType, out string pbstrHelpFileName, out uint pdwHelpId)
        {
            const uint MB_ICONERROR = 0x00000010;
            const uint MB_ICONWARNING = 0x00000030;

            pMessageType[0] = _messageType;
            pbstrMessage = _message;
            pdwType = 0;
            if (_messageType == enum_MESSAGETYPE.MT_MESSAGEBOX)
            {
                switch (_severity)
                {
                    case Severity.Error:
                        pdwType |= MB_ICONERROR;
                        break;

                    case Severity.Warning:
                        pdwType |= MB_ICONWARNING;
                        break;
                }
            }

            pbstrHelpFileName = null;
            pdwHelpId = 0;

            return Constants.S_OK;
        }
Example #19
0
 public void OnOutputMessage(string outputMessage, enum_MESSAGETYPE messageType)
 {
     try
     {
         var eventObject = new AD7MessageEvent(outputMessage, messageType, isAsync: false, severity: AD7MessageEvent.Severity.Warning);
         Send(eventObject, AD7MessageEvent.IID, null);
     }
     catch
     {
         // Since we are often trying to report an exception, if something goes wrong we don't want to take down the process,
         // so ignore the failure.
     }
 }