Beispiel #1
0
        /// <summary>
        /// Specifies how the debug engine (DE) should handle a given exception.
        /// </summary>
        public int SetException(EXCEPTION_INFO[] pException)
        {
            DLog.Debug(DContext.VSDebuggerComCall, "IDebugEngine2.SetException");
            var copyToProgram = false;

            foreach (var info in pException)
            {
                if (info.guidType == GuidList.Guids.guidDot42DebuggerId)
                {
                    if (info.bstrExceptionName == ExceptionConstants.TopLevelName)
                    {
                        exceptionBehaviorMap.DefaultStopOnThrow  = info.dwState.HasFlag(enum_EXCEPTION_STATE.EXCEPTION_STOP_FIRST_CHANCE);
                        exceptionBehaviorMap.DefaultStopUncaught = info.dwState.HasFlag(enum_EXCEPTION_STATE.EXCEPTION_STOP_USER_UNCAUGHT);
                        copyToProgram = true;
                    }
                    else
                    {
                        var behavior = new ExceptionBehavior(
                            info.bstrExceptionName,
                            info.dwState.HasFlag(enum_EXCEPTION_STATE.EXCEPTION_STOP_FIRST_CHANCE),
                            info.dwState.HasFlag(enum_EXCEPTION_STATE.EXCEPTION_STOP_USER_UNCAUGHT));
                        exceptionBehaviorMap[info.bstrExceptionName] = behavior;
                        copyToProgram = true;
                    }
                }
            }
            if (copyToProgram)
            {
                CopyExceptionMapToProgram();
            }
            return(VSConstants.S_OK);
        }
 public AssemblyCSharpBuilder(string name) : base(name)
 {
     CompileErrorBehavior = ExceptionBehavior.Throw;
     SyntaxErrorBehavior  = ExceptionBehavior.Throw;
     OutputFolder         = GlobalOutputFolder;
     CustomUsingShut      = false;
     RetryLimit           = 2;
 }
 public NatashaCSharpCompiler()
 {
     AssemblyOutputKind = AssemblyBuildKind.Stream;
     ErrorBehavior      = ExceptionBehavior.Throw;
 }
 public NatashaCSharpSyntax()
 {
     ErrorBehavior = ExceptionBehavior.Throw;
     UsingCache    = new ConcurrentDictionary <string, HashSet <string> >();
 }