Index: third_party/crashpad/crashpad/client/crashpad_client_win.cc |
diff --git a/third_party/crashpad/crashpad/client/crashpad_client_win.cc b/third_party/crashpad/crashpad/client/crashpad_client_win.cc |
index 7a3d0047a98ae4a9fca483c60135d16fbe550475..586d3feb64aa6d88a01a85b30de3ed889f17a430 100644 |
--- a/third_party/crashpad/crashpad/client/crashpad_client_win.cc |
+++ b/third_party/crashpad/crashpad/client/crashpad_client_win.cc |
@@ -22,6 +22,7 @@ |
#include <memory> |
#include "base/atomicops.h" |
+#include "base/debug/activity_tracker.h" |
#include "base/logging.h" |
#include "base/macros.h" |
#include "base/scoped_generic.h" |
@@ -114,6 +115,15 @@ extern "C" LONG __asan_unhandled_exception_filter(EXCEPTION_POINTERS* info); |
#endif |
LONG WINAPI UnhandledExceptionHandler(EXCEPTION_POINTERS* exception_pointers) { |
+ // Store the event in persistent tracking data. |
manzagop (departed)
2017/03/20 14:29:55
Perhaps add a "// DO NOT SUBMIT" to be safe.
bcwhite
2017/03/21 12:25:06
Does that actually do anything to prevent it going
bcwhite
2017/03/21 12:36:07
So it does! chromium_presubmit fails. Good to kn
|
+ base::debug::GlobalActivityTracker* tracker = |
+ base::debug::GlobalActivityTracker::Get(); |
+ if (tracker) { |
+ tracker->SetProcessPhase( |
+ base::debug::GlobalActivityTracker::PROCESS_UNHANDLED_EXCEPTION); |
+ tracker->RecordException(nullptr); |
+ } |
+ |
#if defined(ADDRESS_SANITIZER) |
// In ASan builds, delegate to the ASan exception filter. |
LONG status = __asan_unhandled_exception_filter(exception_pointers); |