xref: /xnu-10002.81.5/bsd/man/man5/core.5 (revision 5e3eaea39dcf651e66cb99ba7d70e32cc4a99587)
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