summaryrefslogtreecommitdiff
path: root/src/vm/excep.h
AgeCommit message (Collapse)AuthorFilesLines
2019-03-07Fix hijacking for ARM/ARM64/x86 on Unix (#20042)refs/changes/15/201015/1Jan Vorlicek1-2/+2
* Fix hijacking for ARM/ARM64/x86 on Unix We were not checking the case when we have interrupted a thread inside of a function epilog for other architectures than amd64. When such an interruption happens, GS cookie check in a stack walking has failed, since we are unable to decode GS cookie location when the IP is in epilog. This fix implements IsIPInEpilog for all architectures and makes the check unconditional. Change-Id: I9adafe6df13ecaff90fc2bf32d8a8db5f40bdcda
2018-03-27Failfast windows event log (#16875)Sung Yoon Whang1-1/+2
* Add FailFast error log to Windows Event Log * change const wchar * to lpcwstr * Enable sending unhandled exception info to Windows Event Log * Change log format to match console output and address PR comments * Remove more comments * Change the order DoReportForUnhandledException to do a safety check first before calling managed code * Fix parameter name in header file * Add Windows Event logging in DefaultCatchHandler and remove DoReportForUnhandledException * Add back event reporting for ignored unhandled exception cases, fix broken UNIX builds * Fix more broken unix builds * Fix typo * Address PR comments
2017-10-24Delete dead code (#14673)Jan Kotas1-2/+1
- assemblyusagelog - compatibilityflags - xmlparser
2017-02-22Clean up ClrUnwindEx (#9482)Jonghyun Park1-0/+7
* Clean up ClrUnwindEx
2017-02-13Remove remainder of FEATURE_CORECLR (tool missed some files, also comments)danmosemsft1-1/+1
2017-02-13Remove always defined FEATURE_EXCEPTION_NOTIFICATIONSdanmosemsft1-4/+0
2017-02-11Revert "Remove always defined FEATURE_CORRUPTING_EXCEPTIONS"danmosemsft1-0/+12
This reverts commit b0dab0d6de90a38dfbf0d6b2039a7b8f5269d802.
2017-02-11Remove always defined FEATURE_CORRUPTING_EXCEPTIONSdanmosemsft1-12/+0
2017-02-11Remove always defined FEATURE_CORECLRdanmosemsft1-1/+1
2017-01-11[x86/Linux] Fix WIN64EXCEPTIONS build error (#8629)Jonghyun Park1-8/+4
* Move GetUnwindInfo and GetNumberOfUnwindInfos into the real code header This commit fixes #8342. * Use WIN64EXCEPTIONS instead of _TARGET_X86_ * Revise FaultingExceptionFrame This commit revises FaultingExceptionFrame to support WIN64EXCEPTIONS in x86/Linux port. * Add RUNTIME_FUNCTION__EndAddress as NYI * Revise regdisp.h * Revise eetwain.h * Comment out exinfo.cpp if WIN64EXCEPTIONS is defined * Revises excep.cpp * Fix mistmatch in ThrowControlForThread defintion * Revises cgenx86.cpp * Disable SEH-based exception handlers when WIN64EXCEPTIONS is defined * Revise stackwalk.cpp * Revise jitinterface.cpp * Revise readytorun.h * Revise dbgipcevents.h * Revise zapcode.cpp * Revise clrnt.h * Fix Windows build error * Mark FaultingExceptionFrame::UpdateRegDisplay as NYI * Revise per feedback * Revert #if defined(..) as #ifdef * Fix style changes * Fix style changes * Remove #undef _TARGET_X86_ * 2nd attempt to fix Windows build error * Revise per feedback * Revert the chagnes in clrdefinitions.cmake and add BIT32 in CMakeLists.txt * Use !BIT64 instead of BIT32 * Include exceptionhandling.cpp and gcinfodecoder.cpp in build This commit includes exceptionhandling.cpp and gcinfodecoder.cpp in build, and fixes related compile errors. * Fix COMPlus_EndCatch undefined reference * Fix build error * Fix GcInfoDecoder-related undefined references * Fix AdjustContextForVirtualStub undefined reference * Fix GetCallerSP undefined reference * Fix ResetThreadAbortState undefined reference * Attempt to fix Windows build error * Fix CLRNoCatchHandler undefined reference * Another attemp to fix Windows build error * Fix GetXXXFromRedirectedStubStackFrame undefined references * Fix Windows Build Error * Add RtlpGetFunctionEndAddress and RtlVirtualUnwind as NYI * Fix undefined references on JIT helpers * Enable Dummy Application Run with WIN64EXCEPTIONS * Revert "Move GetUnwindInfo and GetNumberOfUnwindInfos into the real code header" This reverts commit c2bad85ac1136be3c6fb6ad7eedc5b3814b2ab29. * Use indirect code header when WIN64EXCEPTIONS is enabled * Port 'SyncRegDisplayToCurrentContext' and 'FillRegDisplay' * Revise style 'RUNTIME_FUNCTION__SetUnwindInfoAddress' * Extract out HandlerData from #ifdef region * Add UNIXTODO * Add UNIXTODO * Port 'GetRegdisplayReturnValue' * Fix incorrect comment * Remove messages that mentions WIN32EXCEPTIONS * Revise AdjustContextForWriteBarrier * Port 'FaultingExceptionFrame::UpdateRegDisplay' * Extract out 'AdjustContextForVirtualStub' and 'CLRNoCatchHandler' from #ifdef region * Merge two #ifdef regions * Set WIN64EXCEPTIONS as a default for x86/Linux * Remove unnecessary #ifdef from ThrowControlForThread * Remove unnecessary stubs * Add Dependency Check between Compile Flags * Revise per feedback
2016-12-22Delete FEATURE_LEGACYSURFACE (#8704)Jan Kotas1-11/+0
2016-12-06[x86/Linux] Revise COMPlusThrowCallback (#8430)Jonghyun Park1-0/+4
GetCallerToken and GetImpersonationToken methods in FrameSecurityDescriptorBaseObject are implemented only for Windows-platform.
2016-12-05[x86/Linux] Re-enable FrameHandlerExRecord for x86/Linux (#8409)Jonghyun Park1-2/+3
* Re-enable FrameHandlerExRecord for x86/Linux * Use _TARGET_X86_ instead of WIN64EXCEPTIONS
2016-11-23[x86/Linux] Fix compile error with exception handling (#8269)SaeHie Park1-2/+2
Fix compile error for x86/Linux - fix unknown type name 'EHWatsonBucketTracker' - fix field has incomplete type 'EXCEPTION_REGISTRATION_RECORD' - fix for FaultingExceptionFrame class
2016-01-27Update license headersdotnet-bot1-5/+4
2016-01-16Add support for GCStress 0xC.Aditya Mandaleeka1-0/+1
2015-09-16Fix for GH issue 410 - https://github.com/dotnet/coreclr/issues/410Gaurav Khanna1-1/+1
Whenever a managed exception is thrown, the details about the thrown exception are also saved off the managed thread object (as LastThrownObject). The VM also has an exception tracker that tracks its dispatch across the managed frames and incase of nested exceptions, the trackers are collapsed correctly, when the nested exception is handled, and last thrown object is updated correctly. The VM works on the premise that the LastThrownObject is updated correctly. Incase of this bug, a method (M1)is invoked via Reflection and has an exception E1. During exception dispatch for E1, an IL filter is invoked that, in turn, has an exception (E2) that remains unhandled. While this is swallowed by the VM (as expected), the LastThrownObject is not updated to reflect the active exception to be E1. Thus, when the dispatch for original exception E1 completes and no managed handler is found, the exception is caught by Reflection subsystem that extracts the thrown exception using the GET_THROWABLE macro that uses the LastThrownObject to determine the thrown exception. Since the LTO was not updated, it still reflects E2. The fix is to update the managed exception state, if the filter has an unhandled exception, similar to how we do when a managed catch block successfully handles the exception. I have refactored the code to make the semantic cleaner. [tfs-changeset: 1525835]
2015-03-18Implement hardware exception handlingJan Vorlicek1-0/+1
This change implements handling of hardware exceptions that happened in the managed code or in one of the JIT helpers. The coreclr registers a callback with PAL. This callback is invoked by PAL whenever a hardware exception happens. coreclr code then dispatches that exception using the DispatchManagedException.
2015-02-20Delete dead codeJan Kotas1-2/+0
2015-01-30Initial commit to populate CoreCLR repo dotnet-bot1-0/+966
[tfs-changeset: 1407945]