1.\""Copyright (c) 2001-2020 Apple Inc. All Rights Reserved. 2.\"The contents of this file constitute Original Code as defined in and are 3.\"subject to the Apple Public Source License Version 1.2 (the 'License'). 4.\"You may not use this file except in compliance with the 5.\"License. Please obtain a copy of the License at 6.\"http://www.apple.com/publicsource and read it before using this file. 7.\" 8.\"This Original Code and all software distributed under the License are 9.\"distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 10.\"EXPRESS OR IMPLIED, AND APPLE 11.\"HEREBY DISCLAIMS ALL SUCH WARRANTIES, INCLUDING WITHOUT LIMITATION, ANY 12.\"WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, 13.\"QUIET ENJOYMENT OR NON-INFRINGEMENT. Please see the License for the 14.\"specific language governing rights and limitations under the License." 15.Dd December 22, 2020 16.Dt CORE 5 17.Os 18.Sh NAME 19.Nm core 20.Nd memory image file format 21.Sh SYNOPSIS 22.In sys/param.h 23.Sh DESCRIPTION 24A small number of signals which cause abnormal termination of a process 25also cause a record of the process's in-core state to be written 26to disk for later examination by one of the available debuggers. 27(See 28.Xr sigaction 2 . ) 29This memory image is written to a file named by default 30.Pa core.pid , 31where 32.Va pid 33is the process ID of the process, 34in the 35.Pa /cores 36directory, 37provided the terminated process had write permission in the directory, 38and the directory existed. 39.Pp 40The maximum size of a core file is limited by 41.Xr setrlimit 2 . 42Files which would be larger than the limit are not created. 43.Pp 44The core file consists of the 45.Xr Mach-O 5 46header as described in the 47.Aq Pa mach-o/loader.h 48file. 49The remainder of the core 50file consists of various sections described in the 51.Xr Mach-O 5 52header. 53.Sh NOTE 54Core dumps are disabled by default under Darwin/macOS. 55To re-enable core dumps, do one of the following 56.Pp 57* For subsequent processes spawned by launchd and their child processes, a privileged user can issue the command 58.Bd -literal -offset indent 59# launchctl limit core unlimited 60.Ed 61.Pp 62* For susequent processes spawned by a shell, use 63.Xr ulimit 1 64or 65.Xr limit 1 66depending upon the shell. 67.Bd -literal -offset indent 68% ulimit \-c unlimited 69.Ed 70or 71.Bd -literal -offset indent 72% limit coredumpsize unlimited 73.Ed 74.Pp 75To disable core dumps, set the limit to 0 using one of the aforementioned ways. 76.Sh SEE ALSO 77.Xr lldb 1 , 78.Xr setrlimit 2 , 79.Xr sigaction 2 , 80.Xr launchd.conf 5 , 81.Xr launchd.plist 5 , 82.Xr Mach-O 5 , 83.Xr sysctl 8 84.Sh HISTORY 85A 86.Nm 87file format appeared in 88.At v1 . 89