summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMikhail Kurinnoi <m.kurinnoi@samsung.com>2021-09-20 08:20:04 -0700
committerAlexander Soldatov/Platform Lab /SRR/Staff Engineer/Samsung Electronics <soldatov.a@samsung.com>2021-09-21 20:15:46 +0300
commit714eb50bc0018c98e19ff6bd9f31017fd07eedbe (patch)
tree79b119c5849f7d8bdcad84598d55680aadb7e803
parent9b1e33323792c24f18072c0450b90d3f97985e9e (diff)
downloadcoreclr-714eb50bc0018c98e19ff6bd9f31017fd07eedbe.tar.gz
coreclr-714eb50bc0018c98e19ff6bd9f31017fd07eedbe.tar.bz2
coreclr-714eb50bc0018c98e19ff6bd9f31017fd07eedbe.zip
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;