소스 검색

Fixing x86 stack walking issue.

Jimmy Thomson 8 년 전
부모
커밋
340a4bb85b
1개의 변경된 파일3개의 추가작업 그리고 1개의 파일을 삭제
  1. 3 1
      lib/Runtime/Language/JavascriptStackWalker.cpp

+ 3 - 1
lib/Runtime/Language/JavascriptStackWalker.cpp

@@ -853,7 +853,9 @@ namespace Js
             // Under some odd cases on x86, addressOfReturnAddress and stashed entry address need to be aligned.
             // This happens when code is generated using two stack pointers. One or both have the address of 
             // return address offset by 4, 8, or 12.
-            || ((uint)addressOfReturnAddress & ~0xFF) == ((uint)nativeLibraryEntryAddress & ~0xFF)
+            || (((uint)nativeLibraryEntryAddress - (uint)addressOfReturnAddress < 0x10) &&
+                *(void**)addressOfReturnAddress == *(void**)nativeLibraryEntryAddress
+               )
 #endif
             ;
     }