summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_win.cc9
-rw-r--r--compiler-rt/test/asan/TestCases/Windows/report_after_syminitialize.cc5
2 files changed, 10 insertions, 4 deletions
diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_win.cc b/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_win.cc
index 4f203a4374b..e8cf0a8307e 100644
--- a/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_win.cc
+++ b/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_win.cc
@@ -40,8 +40,13 @@ class WinSymbolizer : public Symbolizer {
// Anyways, we have to reconfigure stuff to make sure that SymInitialize
// has all the appropriate options set.
// Cross our fingers and reinitialize DbgHelp.
- CHECK(SymCleanup(GetCurrentProcess()));
- CHECK(TrySymInitialize());
+ Report("*** WARNING: Failed to initialize DbgHelp! ***\n");
+ Report("*** Most likely this means that the app is already ***\n");
+ Report("*** using DbgHelp, possibly with incompatible flags. ***\n");
+ Report("*** Due to technical reasons, symbolization might crash ***\n");
+ Report("*** or produce wrong results. ***\n");
+ SymCleanup(GetCurrentProcess());
+ TrySymInitialize();
}
initialized_ = true;
}
diff --git a/compiler-rt/test/asan/TestCases/Windows/report_after_syminitialize.cc b/compiler-rt/test/asan/TestCases/Windows/report_after_syminitialize.cc
index 8a56bf08731..faf5e35db5f 100644
--- a/compiler-rt/test/asan/TestCases/Windows/report_after_syminitialize.cc
+++ b/compiler-rt/test/asan/TestCases/Windows/report_after_syminitialize.cc
@@ -11,8 +11,9 @@ int main() {
if (!SymInitialize(GetCurrentProcess(), 0, FALSE))
return 42;
- *(int*)0 = 42;
+ *(volatile int*)0 = 42;
// CHECK: ERROR: AddressSanitizer: access-violation on unknown address
- // CHECK-NEXT: {{#0 0x.* in main.*report_after_syminitialize.cc:}}[[@LINE-2]]
+ // CHECK-NEXT: {{WARNING: .*DbgHelp}}
+ // CHECK: {{#0 0x.* in main.*report_after_syminitialize.cc:}}[[@LINE-3]]
// CHECK: AddressSanitizer can not provide additional info.
}
OpenPOWER on IntegriCloud