summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMikhail Kurinnoi <m.kurinnoi@samsung.com>2021-09-20 08:20:04 -0700
committerHyungju Lee <leee.lee@samsung.com>2021-09-23 11:24:05 +0900
commitec25d2d5694bdb8d774611f0acbca3620b0a41a3 (patch)
tree774ec5c3acda2c1bf5ac3cafe38a73f5519a22b2
parent1d0c47e37e0409271f304f401b439e8711c157e4 (diff)
downloadcoreclr-tizen_5.5_wearable_hotfix.tar.gz
coreclr-tizen_5.5_wearable_hotfix.tar.bz2
coreclr-tizen_5.5_wearable_hotfix.zip
[x86/Linux] Fix SIGSEGV on Debugger.Break() during debugging.submit/tizen_5.5_wearable_hotfix/20210923.022411tizen_5.5_wearable_hotfix
SIGSEGV occur in src/vm/i386/cgenx86.cpp `HelperMethodFrame::UpdateRegDisplay()` at line `pRD->pCurrentContext->Eip = pRD->ControlPC = m_MachState.GetRetAddr();`, since `pRD->pCurrentContext` is NULL. The point of issue - wrong code block compilation in DebuggerWalkStack() in case of Linux x86.
-rw-r--r--src/debug/ee/frameinfo.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/debug/ee/frameinfo.cpp b/src/debug/ee/frameinfo.cpp
index 3efbddd140..a4741df8f1 100644
--- a/src/debug/ee/frameinfo.cpp
+++ b/src/debug/ee/frameinfo.cpp
@@ -2097,7 +2097,7 @@ StackWalkAction DebuggerWalkStack(Thread *thread,
#endif
memset((void *)&data, 0, sizeof(data));
-#if defined(_TARGET_X86_)
+#if !defined(WIN64EXCEPTIONS)
// @todo - this seems pointless. context->Eip will be 0; and when we copy it over to the DebuggerRD,
// the context will be completely null.
data.regDisplay.ControlPC = context->Eip;