| OLD | NEW |
| 1 // Copyright 2015 The Crashpad Authors. All rights reserved. | 1 // Copyright 2015 The Crashpad Authors. All rights reserved. |
| 2 // | 2 // |
| 3 // Licensed under the Apache License, Version 2.0 (the "License"); | 3 // Licensed under the Apache License, Version 2.0 (the "License"); |
| 4 // you may not use this file except in compliance with the License. | 4 // you may not use this file except in compliance with the License. |
| 5 // You may obtain a copy of the License at | 5 // You may obtain a copy of the License at |
| 6 // | 6 // |
| 7 // http://www.apache.org/licenses/LICENSE-2.0 | 7 // http://www.apache.org/licenses/LICENSE-2.0 |
| 8 // | 8 // |
| 9 // Unless required by applicable law or agreed to in writing, software | 9 // Unless required by applicable law or agreed to in writing, software |
| 10 // distributed under the License is distributed on an "AS IS" BASIS, | 10 // distributed under the License is distributed on an "AS IS" BASIS, |
| (...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 186 | 186 |
| 187 UUID uuid; | 187 UUID uuid; |
| 188 database_status = database_->FinishedWritingCrashReport(new_report, &uuid); | 188 database_status = database_->FinishedWritingCrashReport(new_report, &uuid); |
| 189 if (database_status != CrashReportDatabase::kNoError) { | 189 if (database_status != CrashReportDatabase::kNoError) { |
| 190 return KERN_FAILURE; | 190 return KERN_FAILURE; |
| 191 } | 191 } |
| 192 | 192 |
| 193 upload_thread_->ReportPending(); | 193 upload_thread_->ReportPending(); |
| 194 } | 194 } |
| 195 | 195 |
| 196 bool forwarded = false; |
| 196 if (client_options.system_crash_reporter_forwarding != TriState::kDisabled && | 197 if (client_options.system_crash_reporter_forwarding != TriState::kDisabled && |
| 197 (exception == EXC_CRASH || | 198 (exception == EXC_CRASH || |
| 198 exception == EXC_RESOURCE || | 199 exception == EXC_RESOURCE || |
| 199 exception == EXC_GUARD)) { | 200 exception == EXC_GUARD)) { |
| 200 // Don’t forward simulated exceptions such as kMachExceptionSimulated to the | 201 // Don’t forward simulated exceptions such as kMachExceptionSimulated to the |
| 201 // system crash reporter. Only forward the types of exceptions that it would | 202 // system crash reporter. Only forward the types of exceptions that it would |
| 202 // receive under normal conditions. Although the system crash reporter is | 203 // receive under normal conditions. Although the system crash reporter is |
| 203 // able to deal with other exceptions including simulated ones, forwarding | 204 // able to deal with other exceptions including simulated ones, forwarding |
| 204 // them to the system crash reporter could present the system’s crash UI for | 205 // them to the system crash reporter could present the system’s crash UI for |
| 205 // processes that haven’t actually crashed, and could result in reports not | 206 // processes that haven’t actually crashed, and could result in reports not |
| (...skipping 30 matching lines...) Expand all Loading... |
| 236 thread, | 237 thread, |
| 237 task, | 238 task, |
| 238 exception, | 239 exception, |
| 239 code, | 240 code, |
| 240 code_count, | 241 code_count, |
| 241 &flavor_forward, | 242 &flavor_forward, |
| 242 old_state, | 243 old_state, |
| 243 old_state_count, | 244 old_state_count, |
| 244 new_state_forward_count ? &new_state_forward[0] : nullptr, | 245 new_state_forward_count ? &new_state_forward[0] : nullptr, |
| 245 &new_state_forward_count); | 246 &new_state_forward_count); |
| 246 MACH_LOG_IF(WARNING, kr != KERN_SUCCESS, kr) | 247 if (kr == KERN_SUCCESS) { |
| 247 << "UniversalExceptionRaise " << kSystemCrashReporterServiceName; | 248 forwarded = true; |
| 249 } else { |
| 250 MACH_LOG(WARNING, kr) |
| 251 << "UniversalExceptionRaise " << kSystemCrashReporterServiceName; |
| 252 } |
| 248 } | 253 } |
| 249 } | 254 } |
| 250 | 255 |
| 256 if (!forwarded) { |
| 257 ExcServerCopyState( |
| 258 behavior, old_state, old_state_count, new_state, new_state_count); |
| 259 } |
| 260 |
| 251 return ExcServerSuccessfulReturnValue(behavior, false); | 261 return ExcServerSuccessfulReturnValue(behavior, false); |
| 252 } | 262 } |
| 253 | 263 |
| 254 } // namespace crashpad | 264 } // namespace crashpad |
| OLD | NEW |