summaryrefslogtreecommitdiff
path: root/src/unwinder
diff options
context:
space:
mode:
authorJonghyun Park <parjong@gmail.com>2017-02-03 01:12:07 +0900
committerJan Kotas <jkotas@microsoft.com>2017-02-02 08:12:07 -0800
commitcfca38899b29d609266c108a69cc828a5791a300 (patch)
treeeeeb2ed70d0cabd6421d151c0e6557d36b2cc066 /src/unwinder
parente32f3bece919c1bc77979809d52e202bc6fbdb1a (diff)
downloadcoreclr-cfca38899b29d609266c108a69cc828a5791a300.tar.gz
coreclr-cfca38899b29d609266c108a69cc828a5791a300.tar.bz2
coreclr-cfca38899b29d609266c108a69cc828a5791a300.zip
[x86/Linux] Set Establisher Frame Pointer as Caller SP (#9264)
Diffstat (limited to 'src/unwinder')
-rw-r--r--src/unwinder/i386/unwinder_i386.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/unwinder/i386/unwinder_i386.cpp b/src/unwinder/i386/unwinder_i386.cpp
index b506c61c4c..ca9e28e44a 100644
--- a/src/unwinder/i386/unwinder_i386.cpp
+++ b/src/unwinder/i386/unwinder_i386.cpp
@@ -67,7 +67,6 @@ OOPStackUnwinderX86::VirtualUnwind(
__deref_opt_out_opt PEXCEPTION_ROUTINE *HandlerRoutine
)
{
- *EstablisherFrame = ContextRecord->Esp;
if (HandlerRoutine != NULL)
{
*HandlerRoutine = NULL;
@@ -108,6 +107,10 @@ OOPStackUnwinderX86::VirtualUnwind(
ContextRecord->Esp = rd.SP;
ContextRecord->Eip = rd.ControlPC;
+ // For x86, the value of Establisher Frame Pointer is Caller SP
+ //
+ // (Please refers to CLR ABI for details)
+ *EstablisherFrame = ContextRecord->Esp;
return S_OK;
}