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:21:40 +0900
commitd5ce68ddc5785083fa035342cfcf19a89d25647f (patch)
treed98f17178c405fd68e8979875296e1e0950ce804
parentbe1aa1bf368dd47765d429ee0e557d8cb26f9bfd (diff)
downloadcoreclr-tizen_5.5_mobile_hotfix.tar.gz
coreclr-tizen_5.5_mobile_hotfix.tar.bz2
coreclr-tizen_5.5_mobile_hotfix.zip
[x86/Linux] Fix SIGSEGV on Debugger.Break() during debugging.submit/tizen_5.5_mobile_hotfix/20210923.022210tizen_5.5_mobile_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;