示例#1
0
 ExceptionInfo ConvertToGeneric(EXCEPTION_INFO150 exception)
 {
     return(new ExceptionInfo(exception.bstrExceptionName, TopExceptions.First(ex => ex.guidType == exception.guidType).bstrExceptionName)
     {
         State = exception.dwState,
         Code = exception.dwCode,
         Conditions = exception.pConditions.ToArray()
     });
 }
示例#2
0
 void SetBreakFirstChance(ref EXCEPTION_INFO150 exception, bool breakFirstChance)
 {
     if (breakFirstChance)
     {
         Constants.EnableException(ref exception.dwState);
     }
     else
     {
         Constants.DisableException(ref exception.dwState);
     }
 }
示例#3
0
 public static EXCEPTION_INFO Convert(EXCEPTION_INFO150 info)
 {
     return(new EXCEPTION_INFO
     {
         bstrExceptionName = info.bstrExceptionName,
         bstrProgramName = info.bstrProgramName,
         dwCode = info.dwCode,
         dwState = (enum_EXCEPTION_STATE)info.dwState,
         guidType = info.guidType,
         pProgram = info.pProgram
     });
 }
示例#4
0
        EXCEPTION_INFO150[] GetSetExceptions(EXCEPTION_INFO150 parent)
        {
            IEnumDebugExceptionInfo150 enumerator = default(IEnumDebugExceptionInfo150);

            if (Session.EnumSetExceptions(parent.guidType, out enumerator) == 0 && enumerator != null)
            {
                return(enumerator.ToArray());
            }
            else
            {
                return(new EXCEPTION_INFO150[] { });
            }
        }
示例#5
0
        int IDebugExceptionEvent150.GetException(EXCEPTION_INFO150[] pExceptionInfo) {
            var info = new EXCEPTION_INFO[1];
            int hr = ((IDebugExceptionEvent2)this).GetException(info);
            if (hr != VSConstants.S_OK) {
                return hr;
            }

            pExceptionInfo[0].guidType = info[0].guidType;
            pExceptionInfo[0].bstrExceptionName = info[0].bstrExceptionName;
            pExceptionInfo[0].bstrProgramName = info[0].bstrProgramName;
            pExceptionInfo[0].dwCode = info[0].dwCode;
            pExceptionInfo[0].dwState = (uint)info[0].dwState;
            pExceptionInfo[0].pProgram = info[0].pProgram;
            return VSConstants.S_OK;
        }
示例#6
0
 bool IsExceptionTopException(EXCEPTION_INFO150 exception)
 {
     return(TopExceptions.Any(top => top.bstrExceptionName == exception.bstrExceptionName));
 }