Contents

EXC_CRASH (SIGABRT)

The process terminated because it received an abort signal.

Overview

Typically, the SIGABRT signal is sent because the process called the abort() function, such as when an app encounters an uncaught Objective-C or C++ language exception. Addressing language exception crashes explains how to handle uncaught language exceptions in more detail. This signal can also come from another process that has the privileges to manage this process’ lifetime, and sent a SIGABRT because this process misbehaved in a detectable manner.

If the signal wasn’t sent because of a language exception, look at the crashed thread’s backtrace to determine if code in the process called abort(). For more information about the abort() function from the C standard library, enter man 3 abort in Terminal to view the abort(3) man page.

If an app extension takes too much time to initialize, the operating system sends a SIGABRT to the app extension process. These crashes include an Exception Subtype field with the value LAUNCH_HANG. Because extensions don’t have a main function, any time spent initializing occurs within static constructors and load() methods that are present in your extension and dependent libraries. Although the exception information is different in a watchdog termination, investigate the LAUNCH_HANG using the same techniques discussed in Addressing watchdog terminations.

See Also

Exceptions