Index: tools/catch_exception_tool.cc |
diff --git a/tools/catch_exception_tool.cc b/tools/catch_exception_tool.cc |
index 65de259943c508f268595e7a073144d6ed9ff57c..b18f9b5dbac12c75a37e1a12e7ba7adbc7ad465a 100644 |
--- a/tools/catch_exception_tool.cc |
+++ b/tools/catch_exception_tool.cc |
@@ -275,6 +275,13 @@ int CatchExceptionToolMain(int argc, char* argv[]) { |
int exceptions_handled = 0; |
ExceptionServer exception_server(options, me, &exceptions_handled); |
+ // Assume that if persistent mode has been requested, it’s desirable to ignore |
+ // large messages and keep running. |
+ MachMessageServer::ReceiveLarge receive_large = |
+ (options.persistent == MachMessageServer::kPersistent) |
+ ? MachMessageServer::kReceiveLargeIgnore |
+ : MachMessageServer::kReceiveLargeError; |
+ |
mach_msg_timeout_t timeout_ms = options.timeout_secs |
? options.timeout_secs * 1000 |
: MACH_MSG_TIMEOUT_NONE; |
@@ -284,6 +291,7 @@ int CatchExceptionToolMain(int argc, char* argv[]) { |
MACH_MSG_OPTION_NONE, |
options.persistent, |
options.nonblocking, |
+ receive_large, |
timeout_ms); |
if (mr == MACH_RCV_TIMED_OUT && options.timeout_secs && options.persistent && |
exceptions_handled) { |