summaryrefslogtreecommitdiff
path: root/src/vm/excep.cpp
diff options
context:
space:
mode:
authorJan Kotas <jkotas@microsoft.com>2018-08-28 15:04:04 -0700
committerGitHub <noreply@github.com>2018-08-28 15:04:04 -0700
commit5e83757c500f9c26cac8da254e0fe9e3a7580390 (patch)
tree0dcb90e0290dea975a0dd05895a4483f825fd29a /src/vm/excep.cpp
parent1f5c48d10e97fb94aaf66efbfa1e989752a4ee02 (diff)
downloadcoreclr-5e83757c500f9c26cac8da254e0fe9e3a7580390.tar.gz
coreclr-5e83757c500f9c26cac8da254e0fe9e3a7580390.tar.bz2
coreclr-5e83757c500f9c26cac8da254e0fe9e3a7580390.zip
Break into debugger on assertion failures (#19702)
* Break into debugger on assertion failures Assertion failures terminated the process by default that made them hard to debug. Changed them to break into debugger or trigger fail fast when the debugger is not attached. This should make the day-to-day CoreCLR developer experience better and it is simular to what we had on .NET Framework in the past. * Fix Unix build break Add RaiseFailFastException to Unix PAL
Diffstat (limited to 'src/vm/excep.cpp')
-rw-r--r--src/vm/excep.cpp45
1 files changed, 2 insertions, 43 deletions
diff --git a/src/vm/excep.cpp b/src/vm/excep.cpp
index 306e4d0d83..223ad83ae7 100644
--- a/src/vm/excep.cpp
+++ b/src/vm/excep.cpp
@@ -4172,7 +4172,7 @@ LONG WatsonLastChance( // EXCEPTION_CONTINUE_SEARCH, _CONTINUE_
pThread->GetFrame()->Pop(pThread);
}
- LOG((LF_EH, LL_INFO10, "D::WLC: Call RaiseFailFastExceptionOnWin7\n"));
+ LOG((LF_EH, LL_INFO10, "D::WLC: Call RaiseFailFastException\n"));
// enable preemptive mode before call into OS to allow runtime suspend to finish
GCX_PREEMP();
@@ -6377,49 +6377,8 @@ FCIMPL1(Object*, MissingMemberException_FormatSignature, I1Array* pPersistedSigU
HELPER_METHOD_FRAME_END();
return OBJECTREFToObject(pString);
- }
-FCIMPLEND
-
-// Check if the Win32 Error code is an IO error.
-BOOL IsWin32IOError(SCODE scode)
-{
- LIMITED_METHOD_CONTRACT;
-
- switch (scode)
- {
- case ERROR_FILE_NOT_FOUND:
- case ERROR_PATH_NOT_FOUND:
- case ERROR_TOO_MANY_OPEN_FILES:
- case ERROR_ACCESS_DENIED:
- case ERROR_INVALID_HANDLE:
- case ERROR_INVALID_DRIVE:
- case ERROR_WRITE_PROTECT:
- case ERROR_NOT_READY:
- case ERROR_WRITE_FAULT:
- case ERROR_SHARING_VIOLATION:
- case ERROR_LOCK_VIOLATION:
- case ERROR_SHARING_BUFFER_EXCEEDED:
- case ERROR_HANDLE_DISK_FULL:
- case ERROR_BAD_NETPATH:
- case ERROR_DEV_NOT_EXIST:
- case ERROR_FILE_EXISTS:
- case ERROR_CANNOT_MAKE:
- case ERROR_NET_WRITE_FAULT:
- case ERROR_DRIVE_LOCKED:
- case ERROR_OPEN_FAILED:
- case ERROR_BUFFER_OVERFLOW:
- case ERROR_DISK_FULL:
- case ERROR_INVALID_NAME:
- case ERROR_FILENAME_EXCED_RANGE:
- case ERROR_IO_DEVICE:
- case ERROR_DISK_OPERATION_FAILED:
- return TRUE;
-
- default:
- return FALSE;
- }
}
-
+FCIMPLEND
// Check if there is a pending exception or the thread is already aborting. Returns 0 if yes.
// Otherwise, sets the thread up for generating an abort and returns address of ThrowControlForThread