Index: snapshot/mac/process_snapshot_mac.cc |
diff --git a/snapshot/mac/process_snapshot_mac.cc b/snapshot/mac/process_snapshot_mac.cc |
index bb11526706551b0fc7b41a670b5cd04899bd2cb2..4edb628bbab64217330a42dabab540ba133f46a8 100644 |
--- a/snapshot/mac/process_snapshot_mac.cc |
+++ b/snapshot/mac/process_snapshot_mac.cc |
@@ -79,6 +79,43 @@ bool ProcessSnapshotMac::InitializeException( |
return true; |
} |
+void ProcessSnapshotMac::GetCrashpadOptions( |
+ CrashpadInfo::TriState* enable_crashpad_handler, |
+ CrashpadInfo::TriState* enable_native_crash_reporter_forwarding) { |
+ INITIALIZATION_STATE_DCHECK_VALID(initialized_); |
+ |
+ CrashpadInfo::TriState local_enable_crashpad_handler = CrashpadInfo::kDefault; |
+ CrashpadInfo::TriState local_enable_native_crash_reporter_forwarding = |
+ CrashpadInfo::kDefault; |
+ |
+ for (internal::ModuleSnapshotMac* module : modules_) { |
+ CrashpadInfo::TriState module_enable_crashpad_handler; |
+ CrashpadInfo::TriState module_enable_native_crash_reporter_forwarding; |
+ module->GetCrashpadOptions( |
+ &module_enable_crashpad_handler, |
+ &module_enable_native_crash_reporter_forwarding); |
+ |
+ if (local_enable_crashpad_handler == CrashpadInfo::kDefault) { |
+ local_enable_crashpad_handler = module_enable_crashpad_handler; |
+ } |
+ if (local_enable_native_crash_reporter_forwarding == |
+ CrashpadInfo::kDefault) { |
+ local_enable_native_crash_reporter_forwarding = |
+ module_enable_native_crash_reporter_forwarding; |
+ } |
+ |
+ if (local_enable_crashpad_handler != CrashpadInfo::kDefault && |
+ local_enable_native_crash_reporter_forwarding != |
+ CrashpadInfo::kDefault) { |
+ break; |
+ } |
+ } |
+ |
+ *enable_crashpad_handler = local_enable_crashpad_handler; |
+ *enable_native_crash_reporter_forwarding = |
+ local_enable_native_crash_reporter_forwarding; |
+} |
+ |
pid_t ProcessSnapshotMac::ProcessID() const { |
INITIALIZATION_STATE_DCHECK_VALID(initialized_); |
return process_reader_.ProcessID(); |