Index: src/platform-win32.cc |
=================================================================== |
--- src/platform-win32.cc (revision 3108) |
+++ src/platform-win32.cc (working copy) |
@@ -48,10 +48,10 @@ |
#ifndef NOMCX |
#define NOMCX |
#endif |
-// Require Windows 2000 or higher (this is required for the IsDebuggerPresent |
+// Require Windows XP or higher (this is required for the RtlCaptureContext |
// function to be present). |
#ifndef _WIN32_WINNT |
-#define _WIN32_WINNT 0x500 |
+#define _WIN32_WINNT 0x501 |
#endif |
#include <windows.h> |
@@ -1183,22 +1183,7 @@ |
// Capture current context. |
CONTEXT context; |
- memset(&context, 0, sizeof(context)); |
- context.ContextFlags = CONTEXT_CONTROL; |
- context.ContextFlags = CONTEXT_CONTROL; |
-#ifdef _WIN64 |
- // TODO(X64): Implement context capture. |
-#else |
- __asm call x |
- __asm x: pop eax |
- __asm mov context.Eip, eax |
- __asm mov context.Ebp, ebp |
- __asm mov context.Esp, esp |
- // NOTE: At some point, we could use RtlCaptureContext(&context) to |
- // capture the context instead of inline assembler. However it is |
- // only available on XP, Vista, Server 2003 and Server 2008 which |
- // might not be sufficient. |
-#endif |
+ RtlCaptureContext(&context); |
// Initialize the stack walking |
STACKFRAME64 stack_frame; |