| 120 | CrashReportExceptionHandler::~CrashReportExceptionHandler() = default; |
| 121 | |
| 122 | bool CrashReportExceptionHandler::HandleException( |
| 123 | pid_t client_process_id, |
| 124 | uid_t client_uid, |
| 125 | const ExceptionHandlerProtocol::ClientInformation& info, |
| 126 | VMAddress requesting_thread_stack_address, |
| 127 | pid_t* requesting_thread_id, |
| 128 | UUID* local_report_id) { |
| 129 | Metrics::ExceptionEncountered(); |
| 130 | |
| 131 | DirectPtraceConnection connection; |
| 132 | if (!connection.Initialize(client_process_id)) { |
| 133 | Metrics::ExceptionCaptureResult( |
| 134 | Metrics::CaptureResult::kDirectPtraceFailed); |
| 135 | return false; |
| 136 | } |
| 137 | |
| 138 | return HandleExceptionWithConnection(&connection, |
| 139 | info, |
| 140 | client_uid, |
| 141 | requesting_thread_stack_address, |
| 142 | requesting_thread_id, |
| 143 | local_report_id); |
| 144 | } |
| 145 | |
| 146 | bool CrashReportExceptionHandler::HandleExceptionWithBroker( |
| 147 | pid_t client_process_id, |
no test coverage detected