Chromium Code Reviews| Index: handler/win/crashy_test_program.cc |
| diff --git a/handler/win/crashy_test_program.cc b/handler/win/crashy_test_program.cc |
| index 0694a88b5fa18c16777f911aa308e008844a4bcf..5eaa284f33e73ce3085359c1382a16dba5c20af8 100644 |
| --- a/handler/win/crashy_test_program.cc |
| +++ b/handler/win/crashy_test_program.cc |
| @@ -117,9 +117,20 @@ int CrashyMain(int argc, char* argv[]) { |
| AllocateMemoryOfVariousProtections(); |
| - CrashpadInitializeCriticalSectionEx( |
| - &g_test_critical_section, 0, RTL_CRITICAL_SECTION_FLAG_FORCE_DEBUG_INFO); |
| - EnterCriticalSection(&g_test_critical_section); |
| + |
| + DWORD cs_flags = 0; |
| + |
| + // We can only force the .DebugInfo critical section on Win 8 and later. |
| + DWORD version = GetVersion(); |
| + DWORD major_version = LOBYTE(LOWORD(version)); |
| + DWORD minor_version = HIBYTE(LOWORD(version)); |
| + if (major_version >= 6 && minor_version >= 2) |
|
Mark Mentovai
2015/10/16 03:36:44
This condition doesn’t seem quite right, it won’t
scottmg
2015/10/16 19:29:00
It happens to work because we're unmanifested, but
|
| + cs_flags = RTL_CRITICAL_SECTION_FLAG_FORCE_DEBUG_INFO; |
| + |
| + if (CrashpadInitializeCriticalSectionEx( |
| + &g_test_critical_section, 0, cs_flags)) { |
| + EnterCriticalSection(&g_test_critical_section); |
| + } |
| SomeCrashyFunction(); |