core(5) - NetBSD Manual Pages

CORE(5)                   NetBSD Programmer's Manual                   CORE(5)


NAME
core - memory image file format
SYNOPSIS
#include <sys/param.h>
DESCRIPTION
A small number of signals which cause abnormal termination of a process also cause a record of the process's in-core state to be written to disk for later examination by one of the available debuggers (see signal(7)). This memory image is written to a file named from a per-process template; provided the terminated process had write permission, and provided the abnormality did not cause a system crash. (In this event, the decision to save the core file is arbitrary, see savecore(8).) The file is named from a per-process template, mapped to the sysctl variable proc.<pid>.corename (where <pid> has to be replaced by the pid in decimal format of the process). This template is either an absolute or relative path name, in which format characters can be used, preceeded by the per- cent character (``%''). The following characters are recognised as for- mat and subsitued: n The process's name p The PID of the process (in decimal) t The process's creation date (a la time(3), in decimal) u The login name, as returned by getlogin(2) By default, the per-process template string points to the default core name template, which is mapped to the sysctl variable kern.defcorename. Changing this value on a live system will change the core name template for all processes which didn't have a per-process template set. The de- fault value of the default core name template is %n.core and can be changed at compile-time with the kernel configuration option options DEFCORENAME (see options(4)) The per-process template string is inherited on process creation, but is reset to point to the default core name template on execution of a set-id binary. The maximum size of a core file is limited by setrlimit(2). Files which would be larger than the limit are not created. The core file consists of the u. area, whose size (in pages) is defined by the UPAGES manifest in the <sys/param.h> file. The u. area starts with a user structure as given in <sys/user.h>. The remainder of the core file consists of the data pages followed by the stack pages of the process image. The amount of data space image in the core file is given (in pages) by the variable u_dsize in the u. area. The amount of stack image in the core file is given (in pages) by the variable u_ssize in the u. area. The size of a ``page'' is given by the constant NBPG (also from <sys/param.h>).
SEE ALSO
gdb(1), setrlimit(2), sysctl(3), signal(7), sysctl(8)
HISTORY
A core file format appeared in Version 6 AT&T UNIX. NetBSD 1.5.3 December 11, 1993 1

Powered by man-cgi (2024-08-26). Maintained for NetBSD by Kimmo Suominen. Based on man-cgi by Panagiotis Christias.