diff options
author | Jonghyun Park <parjong@gmail.com> | 2017-02-03 01:12:07 +0900 |
---|---|---|
committer | Jan Kotas <jkotas@microsoft.com> | 2017-02-02 08:12:07 -0800 |
commit | cfca38899b29d609266c108a69cc828a5791a300 (patch) | |
tree | eeeb2ed70d0cabd6421d151c0e6557d36b2cc066 /src/unwinder | |
parent | e32f3bece919c1bc77979809d52e202bc6fbdb1a (diff) | |
download | coreclr-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.cpp | 5 |
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; } |