troubleshooting: add configurable crash reporting with crashpad
This commit adds a basic crash-report system that can be optionally configured to automatically send minidump crash-reports in addition to product versions and a platform description including the OS name and CPU architecture. Reports can be received at a configured REST endpoint(POST). This endpoint URL can be configured using a CMake variable `CRASH_REPORT_URL` which defaults to "http://localhost:8080/submit". - Introduces a new CMake option `ENABLE_CRASHREPORTS`, defaulting to OFF. This allows developers to enable crash reporting features at build time selectively. We also define a new macro with the same name to expose the state to QML in order to hide the UI components if needed. - Implemented conditional inclusion of crashpad dependencies using `ENABLE_CRASHREPORTS`. If set, `ENABLE_CRASHPAD` is also enabled (other crash reporters exist and we may want to use them). - 2 new application settings are added: `EnableCrashReporting` and `EnableAutomaticCrashReporting`. Default settings make it so crash-reports are generated but not automatically sent. With this default configuration, users will be prompted upon application start to confirm the report upload. Additionally, users may opt-in in order to have reports sent automatically at crash-time. Gitlab: #1454 Change-Id: I53edab2dae210240a99272479381695fce1e221b
Showing
- CMakeLists.txt 68 additions, 18 deletionsCMakeLists.txt
- extras/crash-reports/example-submission-servers/.gitignore 9 additions, 0 deletionsextras/crash-reports/example-submission-servers/.gitignore
- extras/crash-reports/example-submission-servers/README.md 36 additions, 0 deletionsextras/crash-reports/example-submission-servers/README.md
- extras/crash-reports/example-submission-servers/crashpad.py 51 additions, 0 deletionsextras/crash-reports/example-submission-servers/crashpad.py
- extras/crash-reports/example-submission-servers/requirements.txt 5 additions, 0 deletions...crash-reports/example-submission-servers/requirements.txt
- src/app/MainApplicationWindow.qml 16 additions, 0 deletionssrc/app/MainApplicationWindow.qml
- src/app/appsettingsmanager.cpp 1 addition, 2 deletionssrc/app/appsettingsmanager.cpp
- src/app/appsettingsmanager.h 3 additions, 2 deletionssrc/app/appsettingsmanager.h
- src/app/commoncomponents/ConfirmDialog.qml 12 additions, 4 deletionssrc/app/commoncomponents/ConfirmDialog.qml
- src/app/crashreportclient.h 131 additions, 0 deletionssrc/app/crashreportclient.h
- src/app/crashreportclients/crashpad.cpp 311 additions, 0 deletionssrc/app/crashreportclients/crashpad.cpp
- src/app/crashreportclients/crashpad.h 47 additions, 0 deletionssrc/app/crashreportclients/crashpad.h
- src/app/crashreporter.h 63 additions, 0 deletionssrc/app/crashreporter.h
- src/app/mainapplication.cpp 13 additions, 3 deletionssrc/app/mainapplication.cpp
- src/app/mainapplication.h 4 additions, 3 deletionssrc/app/mainapplication.h
- src/app/net/jami/Constants/JamiStrings.qml 6 additions, 1 deletionsrc/app/net/jami/Constants/JamiStrings.qml
- src/app/qmlregister.cpp 1 addition, 0 deletionssrc/app/qmlregister.cpp
- src/app/settingsview/components/TroubleshootSettingsPage.qml 63 additions, 30 deletionssrc/app/settingsview/components/TroubleshootSettingsPage.qml
Loading
Please register or sign in to comment