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..55a1c19e1a5eaf15a2f0a1466bfa1de34c1da115 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. EXAMPLE ONLY -- DO NOT SUBMIT |
+ 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); |