Dropbox

Crash reporting in desktop Python applications

Nov 5, 2018Nikhil Marathe
Crash reporting in desktop Python applications
SummaryAI, from the source post

This post details the redesign of Dropbox's desktop crash reporting system. It describes the limitations of the previous in-process signal handler, including its inability to capture boot errors and its inherent fragility. The adoption of Crashpad as an out-of-process solution is explained, highlighting its ability to capture richer crash data (stack traces for all threads, heap contents) and its better support for Windows-specific exceptions. The introduction of a Rust-based 'watchdog' process for validating crash reporting rates and classifying terminations is also covered. The post further elaborates on the challenges and solutions for symbolication of mixed-language (Python, C++, Objective-C) stack traces and the process of teaching Crashpad to effectively report Python-related crashes.