diff --git a/src/coreclr/vm/exceptionhandling.cpp b/src/coreclr/vm/exceptionhandling.cpp index 54963e0e2995d2..271f12d4cf51b7 100644 --- a/src/coreclr/vm/exceptionhandling.cpp +++ b/src/coreclr/vm/exceptionhandling.cpp @@ -946,6 +946,14 @@ ProcessCLRExceptionNew(IN PEXCEPTION_RECORD pExceptionRecord, #ifndef HOST_UNIX if (!(pExceptionRecord->ExceptionFlags & EXCEPTION_UNWINDING)) { + // If the exception is a breakpoint, let it go. The managed exception handling + // doesn't process breakpoints. + if ((pExceptionRecord->ExceptionCode == STATUS_BREAKPOINT) || + (pExceptionRecord->ExceptionCode == STATUS_SINGLE_STEP)) + { + return ExceptionContinueSearch; + } + // Failfast if exception indicates corrupted process state if (IsProcessCorruptedStateException(pExceptionRecord->ExceptionCode, /* throwable */ NULL)) {