2008-06-12 04:59:28 +00:00
|
|
|
.\" Copyright (c) 2006, 2008 by Michael Kerrisk <mtk.manpages@gmail.com>
|
2006-03-31 07:05:11 +00:00
|
|
|
.\"
|
intro.1, _exit.2, access.2, alarm.2, alloc_hugepages.2, arch_prctl.2, bind.2, chdir.2, chmod.2, chown.2, chroot.2, clock_getres.2, clock_nanosleep.2, close.2, connect.2, delete_module.2, dup.2, execve.2, exit_group.2, faccessat.2, fchmodat.2, fchownat.2, fcntl.2, fork.2, fstatat.2, fsync.2, futimesat.2, get_robust_list.2, getdents.2, getdomainname.2, getgid.2, getgroups.2, gethostname.2, getpagesize.2, getpid.2, getresuid.2, getrlimit.2, getrusage.2, gettid.2, gettimeofday.2, getuid.2, getunwind.2, idle.2, init_module.2, intro.2, iopl.2, kcmp.2, kexec_load.2, kill.2, link.2, linkat.2, llseek.2, lookup_dcookie.2, madvise.2, mincore.2, mkdirat.2, mknodat.2, mmap.2, mmap2.2, mount.2, mprotect.2, mq_getsetattr.2, msgctl.2, msgget.2, msgop.2, msync.2, nice.2, open.2, openat.2, pause.2, perfmonctl.2, personality.2, pipe.2, poll.2, posix_fadvise.2, prctl.2, pread.2, process_vm_readv.2, quotactl.2, read.2, readahead.2, readdir.2, readlinkat.2, readv.2, reboot.2, recvmmsg.2, remap_file_pages.2, rename.2, renameat.2, rmdir.2, rt_sigqueueinfo.2, select.2, select_tut.2, semctl.2, semget.2, semop.2, sendmmsg.2, set_tid_address.2, seteuid.2, setfsgid.2, setfsuid.2, setgid.2, setresuid.2, setuid.2, setup.2, sgetmask.2, shmctl.2, shmget.2, shmop.2, sigaction.2, sigaltstack.2, signal.2, sigpending.2, sigprocmask.2, sigreturn.2, sigsuspend.2, sigwaitinfo.2, splice.2, stat.2, statfs.2, stime.2, subpage_prot.2, swapon.2, symlink.2, symlinkat.2, sync.2, sync_file_range.2, syscalls.2, sysctl.2, sysfs.2, syslog.2, tee.2, time.2, timer_create.2, timer_delete.2, timer_getoverrun.2, timer_settime.2, times.2, tkill.2, umask.2, umount.2, uname.2, unlink.2, unlinkat.2, uselib.2, ustat.2, utime.2, utimensat.2, vfork.2, vhangup.2, vm86.2, vmsplice.2, wait.2, wait4.2, write.2, CPU_SET.3, INFINITY.3, abort.3, abs.3, acos.3, acosh.3, adjtime.3, aio_init.3, asin.3, asinh.3, asprintf.3, assert.3, assert_perror.3, atan.3, atan2.3, atanh.3, atexit.3, atof.3, atoi.3, basename.3, bcmp.3, bcopy.3, bindresvport.3, bsd_signal.3, bsearch.3, bstring.3, byteorder.3, bzero.3, catgets.3, catopen.3, cbrt.3, ceil.3, clearenv.3, clock.3, clock_getcpuclockid.3, closedir.3, confstr.3, copysign.3, cos.3, cosh.3, ctermid.3, ctime.3, difftime.3, dirfd.3, div.3, dl_iterate_phdr.3, dprintf.3, drand48.3, drand48_r.3, dysize.3, ecvt.3, ecvt_r.3, end.3, endian.3, erf.3, erfc.3, ether_aton.3, euidaccess.3, exit.3, exp.3, exp10.3, exp2.3, expm1.3, fabs.3, fcloseall.3, fexecve.3, ffs.3, fgetgrent.3, fgetpwent.3, finite.3, flockfile.3, floor.3, fmod.3, fnmatch.3, fopencookie.3, fpathconf.3, fpurge.3, frexp.3, fseeko.3, ftok.3, futimes.3, gcvt.3, get_nprocs_conf.3, getaddrinfo.3, getaddrinfo_a.3, getauxval.3, getcontext.3, getcwd.3, getdate.3, getdirentries.3, getdtablesize.3, getenv.3, getfsent.3, getgrent.3, getgrnam.3, getgrouplist.3, gethostbyname.3, gethostid.3, getifaddrs.3, getipnodebyname.3, getline.3, getlogin.3, getmntent.3, getnetent.3, getnetent_r.3, getopt.3, getprotoent.3, getprotoent_r.3, getpw.3, getpwent.3, getpwnam.3, getrpcent_r.3, gets.3, getservent.3, getservent_r.3, getumask.3, getusershell.3, getutmp.3, getw.3, glob.3, gnu_get_libc_version.3, gsignal.3, hypot.3, if_nameindex.3, if_nametoindex.3, ilogb.3, index.3, inet.3, inet_ntop.3, inet_pton.3, infnan.3, initgroups.3, insque.3, intro.3, isalpha.3, isatty.3, j0.3, ldexp.3, localeconv.3, log.3, log10.3, log1p.3, log2.3, logb.3, lrint.3, lround.3, lsearch.3, lseek64.3, makecontext.3, makedev.3, mallinfo.3, malloc.3, malloc_get_state.3, malloc_info.3, malloc_stats.3, malloc_trim.3, malloc_usable_size.3, mallopt.3, matherr.3, mcheck.3, memccpy.3, memchr.3, memcmp.3, memcpy.3, memfrob.3, memmem.3, memmove.3, memset.3, mkdtemp.3, mkfifo.3, mkfifoat.3, mkstemp.3, mktemp.3, modf.3, mq_close.3, mq_getattr.3, mq_notify.3, mq_open.3, mq_receive.3, mq_send.3, mq_unlink.3, mtrace.3, on_exit.3, opendir.3, posix_fallocate.3, posix_memalign.3, posix_openpt.3, pow.3, pow10.3, profil.3, psignal.3, pthread_attr_init.3, pthread_attr_setaffinity_np.3, pthread_attr_setdetachstate.3, pthread_attr_setguardsize.3, pthread_attr_setinheritsched.3, pthread_attr_setschedparam.3, pthread_attr_setschedpolicy.3, pthread_attr_setscope.3, pthread_attr_setstack.3, pthread_attr_setstackaddr.3, pthread_attr_setstacksize.3, pthread_cancel.3, pthread_cleanup_push.3, pthread_cleanup_push_defer_np.3, pthread_create.3, pthread_detach.3, pthread_equal.3, pthread_exit.3, pthread_getattr_np.3, pthread_getcpuclockid.3, pthread_join.3, pthread_kill.3, pthread_kill_other_threads_np.3, pthread_self.3, pthread_setaffinity_np.3, pthread_setcancelstate.3, pthread_setconcurrency.3, pthread_setname_np.3, pthread_setschedparam.3, pthread_setschedprio.3, pthread_sigmask.3, pthread_sigqueue.3, pthread_testcancel.3, pthread_tryjoin_np.3, pthread_yield.3, putenv.3, putpwent.3, puts.3, qecvt.3, qsort.3, raise.3, rand.3, random.3, random_r.3, re_comp.3, readdir.3, realpath.3, regex.3, remainder.3, remove.3, resolver.3, rewinddir.3, rint.3, round.3, scalb.3, scalbln.3, scandir.3, sched_getcpu.3, seekdir.3, sem_close.3, sem_destroy.3, sem_getvalue.3, sem_init.3, sem_open.3, sem_post.3, sem_unlink.3, sem_wait.3, setenv.3, setlocale.3, setlogmask.3, shm_open.3, siginterrupt.3, sigpause.3, sigqueue.3, sigset.3, sigsetops.3, sigvec.3, sigwait.3, sin.3, sinh.3, sleep.3, sockatmark.3, sqrt.3, statvfs.3, stdio_ext.3, stpcpy.3, strcasecmp.3, strcat.3, strchr.3, strcmp.3, strcoll.3, strcpy.3, strdup.3, strerror.3, strfry.3, strftime.3, string.3, strlen.3, strpbrk.3, strptime.3, strsep.3, strsignal.3, strspn.3, strstr.3, strtok.3, strtol.3, strtoul.3, strverscmp.3, strxfrm.3, swab.3, sysconf.3, syslog.3, system.3, sysv_signal.3, tan.3, tanh.3, tcgetpgrp.3, tcgetsid.3, telldir.3, tempnam.3, timegm.3, timeradd.3, tmpfile.3, tmpnam.3, toascii.3, toupper.3, trunc.3, tsearch.3, ttyslot.3, tzset.3, ulimit.3, undocumented.3, unlocked_stdio.3, usleep.3, y0.3, cpuid.4, full.4, initrd.4, mouse.4, msr.4, sd.4, st.4, acct.5, core.5, services.5, slabinfo.5, aio.7, capabilities.7, credentials.7, feature_test_macros.7, hier.7, inotify.7, libc.7, locale.7, man-pages.7, man.7, math_error.7, mq_overview.7, numa.7, path_resolution.7, pipe.7, pthreads.7, pty.7, rtld-audit.7, sem_overview.7, shm_overview.7, sigevent.7, signal.7, suffixes.7, svipc.7, termio.7, time.7, udplite.7, units.7, uri.7, sln.8: s/LICENSE_START(verbatim)/LICENSE_START(VERBATIM)/
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2013-03-10 09:29:01 +00:00
|
|
|
.\" %%%LICENSE_START(VERBATIM)
|
2006-03-31 07:05:11 +00:00
|
|
|
.\" Permission is granted to make and distribute verbatim copies of this
|
|
|
|
.\" manual provided the copyright notice and this permission notice are
|
|
|
|
.\" preserved on all copies.
|
|
|
|
.\"
|
|
|
|
.\" Permission is granted to copy and distribute modified versions of this
|
|
|
|
.\" manual under the conditions for verbatim copying, provided that the
|
|
|
|
.\" entire resulting derived work is distributed under the terms of a
|
|
|
|
.\" permission notice identical to this one.
|
|
|
|
.\"
|
|
|
|
.\" Since the Linux kernel and libraries are constantly changing, this
|
|
|
|
.\" manual page may be incorrect or out-of-date. The author(s) assume no
|
|
|
|
.\" responsibility for errors or omissions, or for damages resulting from
|
2008-03-18 14:47:54 +00:00
|
|
|
.\" the use of the information contained herein. The author(s) may not
|
|
|
|
.\" have taken the same level of care in the production of this manual,
|
|
|
|
.\" which is licensed free of charge, as they might when working
|
|
|
|
.\" professionally.
|
2006-03-31 07:05:11 +00:00
|
|
|
.\"
|
|
|
|
.\" Formatted or processed versions of this manual, if unaccompanied by
|
|
|
|
.\" the source, must acknowledge the copyright and authors of this work.
|
intro.1, _exit.2, access.2, alarm.2, alloc_hugepages.2, arch_prctl.2, bind.2, chdir.2, chmod.2, chown.2, chroot.2, clock_getres.2, clock_nanosleep.2, close.2, connect.2, delete_module.2, dup.2, execve.2, exit_group.2, faccessat.2, fchmodat.2, fchownat.2, fcntl.2, fork.2, fstatat.2, fsync.2, futimesat.2, get_robust_list.2, getdents.2, getdomainname.2, getgid.2, getgroups.2, gethostname.2, getpagesize.2, getpid.2, getresuid.2, getrlimit.2, getrusage.2, gettid.2, gettimeofday.2, getuid.2, getunwind.2, idle.2, init_module.2, intro.2, iopl.2, kcmp.2, kexec_load.2, kill.2, link.2, linkat.2, llseek.2, lookup_dcookie.2, madvise.2, mincore.2, mkdirat.2, mknodat.2, mmap.2, mmap2.2, mount.2, mprotect.2, mq_getsetattr.2, msgctl.2, msgget.2, msgop.2, msync.2, nice.2, open.2, openat.2, pause.2, perfmonctl.2, personality.2, pipe.2, poll.2, posix_fadvise.2, prctl.2, pread.2, process_vm_readv.2, quotactl.2, read.2, readahead.2, readdir.2, readlinkat.2, readv.2, reboot.2, recvmmsg.2, remap_file_pages.2, rename.2, renameat.2, rmdir.2, rt_sigqueueinfo.2, select.2, select_tut.2, semctl.2, semget.2, semop.2, sendmmsg.2, set_tid_address.2, seteuid.2, setfsgid.2, setfsuid.2, setgid.2, setresuid.2, setuid.2, setup.2, sgetmask.2, shmctl.2, shmget.2, shmop.2, sigaction.2, sigaltstack.2, signal.2, sigpending.2, sigprocmask.2, sigreturn.2, sigsuspend.2, sigwaitinfo.2, splice.2, stat.2, statfs.2, stime.2, subpage_prot.2, swapon.2, symlink.2, symlinkat.2, sync.2, sync_file_range.2, syscalls.2, sysctl.2, sysfs.2, syslog.2, tee.2, time.2, timer_create.2, timer_delete.2, timer_getoverrun.2, timer_settime.2, times.2, tkill.2, umask.2, umount.2, uname.2, unlink.2, unlinkat.2, uselib.2, ustat.2, utime.2, utimensat.2, vfork.2, vhangup.2, vm86.2, vmsplice.2, wait.2, wait4.2, write.2, CPU_SET.3, INFINITY.3, abort.3, abs.3, acos.3, acosh.3, adjtime.3, aio_init.3, asin.3, asinh.3, asprintf.3, assert.3, assert_perror.3, atan.3, atan2.3, atanh.3, atexit.3, atof.3, atoi.3, basename.3, bcmp.3, bcopy.3, bindresvport.3, bsd_signal.3, bsearch.3, bstring.3, byteorder.3, bzero.3, catgets.3, catopen.3, cbrt.3, ceil.3, clearenv.3, clock.3, clock_getcpuclockid.3, closedir.3, confstr.3, copysign.3, cos.3, cosh.3, ctermid.3, ctime.3, difftime.3, dirfd.3, div.3, dl_iterate_phdr.3, dprintf.3, drand48.3, drand48_r.3, dysize.3, ecvt.3, ecvt_r.3, end.3, endian.3, erf.3, erfc.3, ether_aton.3, euidaccess.3, exit.3, exp.3, exp10.3, exp2.3, expm1.3, fabs.3, fcloseall.3, fexecve.3, ffs.3, fgetgrent.3, fgetpwent.3, finite.3, flockfile.3, floor.3, fmod.3, fnmatch.3, fopencookie.3, fpathconf.3, fpurge.3, frexp.3, fseeko.3, ftok.3, futimes.3, gcvt.3, get_nprocs_conf.3, getaddrinfo.3, getaddrinfo_a.3, getauxval.3, getcontext.3, getcwd.3, getdate.3, getdirentries.3, getdtablesize.3, getenv.3, getfsent.3, getgrent.3, getgrnam.3, getgrouplist.3, gethostbyname.3, gethostid.3, getifaddrs.3, getipnodebyname.3, getline.3, getlogin.3, getmntent.3, getnetent.3, getnetent_r.3, getopt.3, getprotoent.3, getprotoent_r.3, getpw.3, getpwent.3, getpwnam.3, getrpcent_r.3, gets.3, getservent.3, getservent_r.3, getumask.3, getusershell.3, getutmp.3, getw.3, glob.3, gnu_get_libc_version.3, gsignal.3, hypot.3, if_nameindex.3, if_nametoindex.3, ilogb.3, index.3, inet.3, inet_ntop.3, inet_pton.3, infnan.3, initgroups.3, insque.3, intro.3, isalpha.3, isatty.3, j0.3, ldexp.3, localeconv.3, log.3, log10.3, log1p.3, log2.3, logb.3, lrint.3, lround.3, lsearch.3, lseek64.3, makecontext.3, makedev.3, mallinfo.3, malloc.3, malloc_get_state.3, malloc_info.3, malloc_stats.3, malloc_trim.3, malloc_usable_size.3, mallopt.3, matherr.3, mcheck.3, memccpy.3, memchr.3, memcmp.3, memcpy.3, memfrob.3, memmem.3, memmove.3, memset.3, mkdtemp.3, mkfifo.3, mkfifoat.3, mkstemp.3, mktemp.3, modf.3, mq_close.3, mq_getattr.3, mq_notify.3, mq_open.3, mq_receive.3, mq_send.3, mq_unlink.3, mtrace.3, on_exit.3, opendir.3, posix_fallocate.3, posix_memalign.3, posix_openpt.3, pow.3, pow10.3, profil.3, psignal.3, pthread_attr_init.3, pthread_attr_setaffinity_np.3, pthread_attr_setdetachstate.3, pthread_attr_setguardsize.3, pthread_attr_setinheritsched.3, pthread_attr_setschedparam.3, pthread_attr_setschedpolicy.3, pthread_attr_setscope.3, pthread_attr_setstack.3, pthread_attr_setstackaddr.3, pthread_attr_setstacksize.3, pthread_cancel.3, pthread_cleanup_push.3, pthread_cleanup_push_defer_np.3, pthread_create.3, pthread_detach.3, pthread_equal.3, pthread_exit.3, pthread_getattr_np.3, pthread_getcpuclockid.3, pthread_join.3, pthread_kill.3, pthread_kill_other_threads_np.3, pthread_self.3, pthread_setaffinity_np.3, pthread_setcancelstate.3, pthread_setconcurrency.3, pthread_setname_np.3, pthread_setschedparam.3, pthread_setschedprio.3, pthread_sigmask.3, pthread_sigqueue.3, pthread_testcancel.3, pthread_tryjoin_np.3, pthread_yield.3, putenv.3, putpwent.3, puts.3, qecvt.3, qsort.3, raise.3, rand.3, random.3, random_r.3, re_comp.3, readdir.3, realpath.3, regex.3, remainder.3, remove.3, resolver.3, rewinddir.3, rint.3, round.3, scalb.3, scalbln.3, scandir.3, sched_getcpu.3, seekdir.3, sem_close.3, sem_destroy.3, sem_getvalue.3, sem_init.3, sem_open.3, sem_post.3, sem_unlink.3, sem_wait.3, setenv.3, setlocale.3, setlogmask.3, shm_open.3, siginterrupt.3, sigpause.3, sigqueue.3, sigset.3, sigsetops.3, sigvec.3, sigwait.3, sin.3, sinh.3, sleep.3, sockatmark.3, sqrt.3, statvfs.3, stdio_ext.3, stpcpy.3, strcasecmp.3, strcat.3, strchr.3, strcmp.3, strcoll.3, strcpy.3, strdup.3, strerror.3, strfry.3, strftime.3, string.3, strlen.3, strpbrk.3, strptime.3, strsep.3, strsignal.3, strspn.3, strstr.3, strtok.3, strtol.3, strtoul.3, strverscmp.3, strxfrm.3, swab.3, sysconf.3, syslog.3, system.3, sysv_signal.3, tan.3, tanh.3, tcgetpgrp.3, tcgetsid.3, telldir.3, tempnam.3, timegm.3, timeradd.3, tmpfile.3, tmpnam.3, toascii.3, toupper.3, trunc.3, tsearch.3, ttyslot.3, tzset.3, ulimit.3, undocumented.3, unlocked_stdio.3, usleep.3, y0.3, cpuid.4, full.4, initrd.4, mouse.4, msr.4, sd.4, st.4, acct.5, core.5, services.5, slabinfo.5, aio.7, capabilities.7, credentials.7, feature_test_macros.7, hier.7, inotify.7, libc.7, locale.7, man-pages.7, man.7, math_error.7, mq_overview.7, numa.7, path_resolution.7, pipe.7, pthreads.7, pty.7, rtld-audit.7, sem_overview.7, shm_overview.7, sigevent.7, signal.7, suffixes.7, svipc.7, termio.7, time.7, udplite.7, units.7, uri.7, sln.8: Global fix: Add LICENSE_START(verbatim)
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2013-03-10 09:28:40 +00:00
|
|
|
.\" %%%LICENSE_END
|
2006-03-31 07:05:11 +00:00
|
|
|
.\"
|
memusage.1, memusagestat.1, pldd.1, accept.2, adjtimex.2, arch_prctl.2, bdflush.2, bpf.2, close.2, epoll_ctl.2, epoll_wait.2, execve.2, execveat.2, fanotify_init.2, fanotify_mark.2, fcntl.2, fsync.2, get_kernel_syms.2, getdomainname.2, getgroups.2, gethostname.2, getrandom.2, getrlimit.2, getrusage.2, getsid.2, getunwind.2, io_getevents.2, ioctl_fat.2, kexec_load.2, killpg.2, listxattr.2, lseek.2, madvise.2, memfd_create.2, mknod.2, mlock.2, modify_ldt.2, msgctl.2, msgget.2, msgop.2, readlink.2, readv.2, reboot.2, recvmmsg.2, rename.2, request_key.2, restart_syscall.2, sched_setaffinity.2, sched_setattr.2, sched_setparam.2, seccomp.2, select_tut.2, semctl.2, semget.2, semop.2, set_thread_area.2, seteuid.2, setgid.2, setpgid.2, setresuid.2, setreuid.2, setsid.2, setuid.2, shmctl.2, shmget.2, shmop.2, sigaction.2, sigprocmask.2, stat.2, symlink.2, syscall.2, sysctl.2, unlink.2, bindresvport.3, byteorder.3, dlopen.3, endian.3, error.3, ffs.3, fmemopen.3, getcwd.3, getlogin.3, getnetent.3, getprotoent.3, getservent.3, getumask.3, getutent.3, glob.3, isalpha.3, lio_listio.3, login.3, mbsinit.3, mbstowcs.3, mbtowc.3, mkstemp.3, nextup.3, ntp_gettime.3, posix_fallocate.3, posix_spawn.3, pthread_join.3, pthread_rwlockattr_setkind_np.3, random.3, rcmd.3, realpath.3, resolver.3, setjmp.3, setnetgrent.3, sigvec.3, strerror.3, strverscmp.3, system.3, toupper.3, towlower.3, towupper.3, wcstombs.3, wordexp.3, cciss.4, loop.4, mouse.4, random.4, core.5, group.5, hosts.5, resolv.conf.5, ascii.7, environ.7, epoll.7, glob.7, ip.7, mq_overview.7, packet.7, pipe.7, raw.7, sched.7, signal.7, socket.7, symlink.7, ld.so.8, sln.8: tstamp
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2016-10-08 10:53:47 +00:00
|
|
|
.TH CORE 5 2016-10-08 "Linux" "Linux Programmer's Manual"
|
2006-03-31 07:05:11 +00:00
|
|
|
.SH NAME
|
|
|
|
core \- core dump file
|
|
|
|
.SH DESCRIPTION
|
2007-04-12 22:42:49 +00:00
|
|
|
The default action of certain signals is to cause a process to terminate
|
2006-03-31 07:05:11 +00:00
|
|
|
and produce a
|
|
|
|
.IR "core dump file" ,
|
2007-04-12 22:42:49 +00:00
|
|
|
a disk file containing an image of the process's memory at
|
2006-03-31 07:05:11 +00:00
|
|
|
the time of termination.
|
2008-08-26 04:34:37 +00:00
|
|
|
This image can be used in a debugger (e.g.,
|
|
|
|
.BR gdb (1))
|
|
|
|
to inspect the state of the program at the time that it terminated.
|
2006-03-31 07:05:11 +00:00
|
|
|
A list of the signals which cause a process to dump core can be found in
|
|
|
|
.BR signal (7).
|
|
|
|
|
2006-03-31 13:22:11 +00:00
|
|
|
A process can set its soft
|
2007-09-20 16:26:31 +00:00
|
|
|
.B RLIMIT_CORE
|
2007-04-12 22:42:49 +00:00
|
|
|
resource limit to place an upper limit on the size of the core dump file
|
2006-03-31 07:05:11 +00:00
|
|
|
that will be produced if it receives a "core dump" signal; see
|
|
|
|
.BR getrlimit (2)
|
|
|
|
for details.
|
|
|
|
|
2007-04-12 22:42:49 +00:00
|
|
|
There are various circumstances in which a core dump file is
|
2006-03-31 07:05:11 +00:00
|
|
|
not produced:
|
2008-01-01 07:55:02 +00:00
|
|
|
.IP * 3
|
2006-04-08 21:40:24 +00:00
|
|
|
The process does not have permission to write the core file.
|
2014-05-14 05:33:08 +00:00
|
|
|
(By default, the core file is called
|
2014-05-14 05:32:43 +00:00
|
|
|
.IR core
|
|
|
|
or
|
|
|
|
.IR core.pid ,
|
|
|
|
where
|
|
|
|
.I pid
|
|
|
|
is the ID of the process that dumped core,
|
2007-04-12 22:42:49 +00:00
|
|
|
and is created in the current working directory.
|
2006-04-08 21:40:24 +00:00
|
|
|
See below for details on naming.)
|
2007-04-12 22:42:49 +00:00
|
|
|
Writing the core file will fail if the directory in which
|
accept.2, access.2, acct.2, clock_nanosleep.2, mbind.2, mincore.2, remap_file_pages.2, sched_setscheduler.2, set_mempolicy.2, splice.2, stat.2, syslog.2, timer_create.2, timerfd_create.2, truncate.2, fenv.3, ferror.3, fflush.3, fgetwc.3, fgetws.3, flockfile.3, fputwc.3, fputws.3, fread.3, getopt.3, gets.3, getwchar.3, glob.3, iconv.3, longjmp.3, pow.3, printf.3, puts.3, putwchar.3, regex.3, rpc.3, scanf.3, setjmp.3, termios.3, unlocked_stdio.3, wcswidth.3, hd.4, rtc.4, st.4, core.5, dir_colors.5, elf.5, proc.5, arp.7, ascii.7, boot.7, bootparam.7, charsets.7, futex.7, ip.7, iso_8859-11.7, man-pages.7, man.7, mdoc.samples.7, path_resolution.7, pipe.7, posixoptions.7, unicode.7, unix.7, uri.7, utf-8.7, ld.so.8: s/non-/non/
The tendency in English, as prescribed in style guides like
Chicago MoS, is towards removing hyphens after prefixes
like "non-" etc.
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2010-01-16 17:20:12 +00:00
|
|
|
it is to be created is nonwritable,
|
2007-04-12 22:42:49 +00:00
|
|
|
or if a file with the same name exists and
|
2006-04-08 21:40:24 +00:00
|
|
|
is not writable
|
2007-04-12 22:42:49 +00:00
|
|
|
or is not a regular file
|
2006-04-08 21:40:24 +00:00
|
|
|
(e.g., it is a directory or a symbolic link).
|
2008-01-01 07:55:02 +00:00
|
|
|
.IP *
|
2007-04-12 22:42:49 +00:00
|
|
|
A (writable, regular) file with the same name as would be used for the
|
|
|
|
core dump already exists, but there is more than one hard link to that
|
2006-11-25 01:45:17 +00:00
|
|
|
file.
|
|
|
|
.IP *
|
intro.1, time.1, access.2, acct.2, alloc_hugepages.2, bind.2, chdir.2, chmod.2, chown.2, chroot.2, clone.2, close.2, execve.2, fallocate.2, fcntl.2, getdents.2, getrusage.2, getxattr.2, init_module.2, inotify_add_watch.2, ioprio_set.2, kcmp.2, link.2, listxattr.2, lseek.2, madvise.2, mkdir.2, mknod.2, mmap.2, mount.2, move_pages.2, msgctl.2, nfsservctl.2, open.2, pivot_root.2, quotactl.2, read.2, readlink.2, removexattr.2, rename.2, rmdir.2, semctl.2, setfsgid.2, setfsuid.2, setresuid.2, setuid.2, setup.2, setxattr.2, shmctl.2, splice.2, spu_create.2, stat.2, statfs.2, swapon.2, symlink.2, sync.2, sync_file_range.2, sysfs.2, truncate.2, umount.2, unlink.2, unshare.2, ustat.2, utime.2, utimensat.2, write.2, btree.3, errno.3, fexecve.3, ftw.3, futimes.3, get_nprocs_conf.3, getcwd.3, getdirentries.3, getmntent.3, glob.3, mkfifo.3, mq_open.3, readdir.3, realpath.3, recno.3, remove.3, sem_open.3, shm_open.3, statvfs.3, sysconf.3, telldir.3, tmpfile.3, cciss.4, initrd.4, pts.4, sk98lin.4, vcs.4, core.5, filesystems.5, proc.5, boot.7, bootparam.7, capabilities.7, cpuset.7, credentials.7, feature_test_macros.7, fifo.7, hier.7, inotify.7, intro.7, mq_overview.7, path_resolution.7, pipe.7, sem_overview.7, shm_overview.7, spufs.7, symlink.7, unix.7, uri.7, sync.8: Global fix: s/file system/filesystem/
Notwithstanding 24d01c530c5a3f75217543d02bf6712395e5f90c,
"filesystem" is the form used by the great majority of man pages
outside the man-pages project and in a number of other sources,
so let's go with that.
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2013-08-08 08:07:57 +00:00
|
|
|
The filesystem where the core dump file would be created is full;
|
2008-03-19 11:52:55 +00:00
|
|
|
or has run out of inodes; or is mounted read-only;
|
intro.1, time.1, access.2, acct.2, alloc_hugepages.2, bind.2, chdir.2, chmod.2, chown.2, chroot.2, clone.2, close.2, execve.2, fallocate.2, fcntl.2, getdents.2, getrusage.2, getxattr.2, init_module.2, inotify_add_watch.2, ioprio_set.2, kcmp.2, link.2, listxattr.2, lseek.2, madvise.2, mkdir.2, mknod.2, mmap.2, mount.2, move_pages.2, msgctl.2, nfsservctl.2, open.2, pivot_root.2, quotactl.2, read.2, readlink.2, removexattr.2, rename.2, rmdir.2, semctl.2, setfsgid.2, setfsuid.2, setresuid.2, setuid.2, setup.2, setxattr.2, shmctl.2, splice.2, spu_create.2, stat.2, statfs.2, swapon.2, symlink.2, sync.2, sync_file_range.2, sysfs.2, truncate.2, umount.2, unlink.2, unshare.2, ustat.2, utime.2, utimensat.2, write.2, btree.3, errno.3, fexecve.3, ftw.3, futimes.3, get_nprocs_conf.3, getcwd.3, getdirentries.3, getmntent.3, glob.3, mkfifo.3, mq_open.3, readdir.3, realpath.3, recno.3, remove.3, sem_open.3, shm_open.3, statvfs.3, sysconf.3, telldir.3, tmpfile.3, cciss.4, initrd.4, pts.4, sk98lin.4, vcs.4, core.5, filesystems.5, proc.5, boot.7, bootparam.7, capabilities.7, cpuset.7, credentials.7, feature_test_macros.7, fifo.7, hier.7, inotify.7, intro.7, mq_overview.7, path_resolution.7, pipe.7, sem_overview.7, shm_overview.7, spufs.7, symlink.7, unix.7, uri.7, sync.8: Global fix: s/file system/filesystem/
Notwithstanding 24d01c530c5a3f75217543d02bf6712395e5f90c,
"filesystem" is the form used by the great majority of man pages
outside the man-pages project and in a number of other sources,
so let's go with that.
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2013-08-08 08:07:57 +00:00
|
|
|
or the user has reached their quota for the filesystem.
|
2006-11-25 01:45:17 +00:00
|
|
|
.IP *
|
2007-04-12 22:42:49 +00:00
|
|
|
The directory in which the core dump file is to be created does
|
2006-04-08 21:40:24 +00:00
|
|
|
not exist.
|
2006-03-31 07:05:11 +00:00
|
|
|
.IP *
|
2008-08-26 04:34:37 +00:00
|
|
|
The
|
2006-03-31 07:05:11 +00:00
|
|
|
.B RLIMIT_CORE
|
2008-08-26 04:34:37 +00:00
|
|
|
(core file size) or
|
2006-03-31 07:05:11 +00:00
|
|
|
.B RLIMIT_FSIZE
|
2008-08-26 04:34:37 +00:00
|
|
|
(file size) resource limits for the process are set to zero; see
|
|
|
|
.BR getrlimit (2)
|
|
|
|
and the documentation of the shell's
|
|
|
|
.I ulimit
|
|
|
|
command
|
|
|
|
.RI ( limit
|
|
|
|
in
|
|
|
|
.BR csh (1)).
|
2006-03-31 07:05:11 +00:00
|
|
|
.IP *
|
2007-04-12 22:42:49 +00:00
|
|
|
The binary being executed by the process does not have read
|
2006-03-31 07:05:11 +00:00
|
|
|
permission enabled.
|
|
|
|
.IP *
|
|
|
|
The process is executing a set-user-ID (set-group-ID) program
|
2007-04-12 22:42:49 +00:00
|
|
|
that is owned by a user (group) other than the real user (group)
|
2015-01-19 11:19:45 +00:00
|
|
|
ID of the process,
|
|
|
|
or the process is executing a program that has file capabilities (see
|
|
|
|
.BR capabilities (7)).
|
2006-03-31 07:05:11 +00:00
|
|
|
(However, see the description of the
|
|
|
|
.BR prctl (2)
|
|
|
|
.B PR_SET_DUMPABLE
|
|
|
|
operation, and the description of the
|
|
|
|
.I /proc/sys/fs/suid_dumpable
|
2008-07-01 02:09:18 +00:00
|
|
|
.\" FIXME . Perhaps relocate discussion of /proc/sys/fs/suid_dumpable
|
|
|
|
.\" and PR_SET_DUMPABLE to this page?
|
2006-03-31 07:05:11 +00:00
|
|
|
file in
|
|
|
|
.BR proc (5).)
|
2013-02-25 07:28:56 +00:00
|
|
|
.IP *
|
|
|
|
(Since Linux 3.7)
|
|
|
|
.\" commit 046d662f481830e652ac34cd112249adde16452a
|
|
|
|
The kernel was configured without the
|
|
|
|
.BR CONFIG_COREDUMP
|
|
|
|
option.
|
2012-07-16 05:50:01 +00:00
|
|
|
.PP
|
|
|
|
In addition,
|
|
|
|
a core dump may exclude part of the address space of the process if the
|
|
|
|
.BR madvise (2)
|
|
|
|
.B MADV_DONTDUMP
|
|
|
|
flag was employed.
|
2006-03-31 07:05:11 +00:00
|
|
|
.SS Naming of core dump files
|
2007-04-12 22:42:49 +00:00
|
|
|
By default, a core dump file is named
|
2006-03-31 07:05:11 +00:00
|
|
|
.IR core ,
|
2007-04-12 22:42:49 +00:00
|
|
|
but the
|
2006-03-31 07:05:11 +00:00
|
|
|
.I /proc/sys/kernel/core_pattern
|
2008-06-12 04:59:28 +00:00
|
|
|
file (since Linux 2.6 and 2.4.21)
|
2006-03-31 07:05:11 +00:00
|
|
|
can be set to define a template that is used to name core dump files.
|
|
|
|
The template can contain % specifiers which are substituted
|
|
|
|
by the following values when a core file is created:
|
2008-06-12 04:59:28 +00:00
|
|
|
.PP
|
|
|
|
.RS 4
|
|
|
|
.PD 0
|
|
|
|
.TP 4
|
|
|
|
%%
|
|
|
|
a single % character
|
|
|
|
.TP
|
2014-03-14 14:09:55 +00:00
|
|
|
%c
|
|
|
|
core file size soft resource limit of crashing process (since Linux 2.6.24)
|
2008-06-12 04:59:28 +00:00
|
|
|
.TP
|
2014-03-14 13:49:13 +00:00
|
|
|
%d
|
2014-03-14 14:06:06 +00:00
|
|
|
.\" Added in git commit 12a2b4b2241e318b4f6df31228e4272d2c2968a1
|
|
|
|
dump mode\(emsame as value returned by
|
|
|
|
.BR prctl (2)
|
|
|
|
.B PR_GET_DUMPABLE
|
2014-03-14 13:49:13 +00:00
|
|
|
(since Linux 3.7)
|
|
|
|
.TP
|
2008-06-12 04:59:28 +00:00
|
|
|
%e
|
|
|
|
executable filename (without path prefix)
|
|
|
|
.TP
|
2012-01-17 08:36:44 +00:00
|
|
|
%E
|
|
|
|
pathname of executable,
|
2014-01-22 20:33:10 +00:00
|
|
|
with slashes (\(aq/\(aq) replaced by exclamation marks (\(aq!\(aq)
|
|
|
|
(since Linux 3.0).
|
2012-01-17 08:36:44 +00:00
|
|
|
.TP
|
2014-03-14 14:09:55 +00:00
|
|
|
%g
|
|
|
|
(numeric) real GID of dumped process
|
|
|
|
.TP
|
|
|
|
%h
|
|
|
|
hostname (same as \fInodename\fP returned by \fBuname\fP(2))
|
|
|
|
.TP
|
2015-01-19 10:57:56 +00:00
|
|
|
%i
|
|
|
|
TID of thread that triggered core dump,
|
|
|
|
as seen in the PID namespace in which the thread resides
|
|
|
|
.\" commit b03023ecbdb76c1dec86b41ed80b123c22783220
|
|
|
|
(since Linux 3.18)
|
|
|
|
.TP
|
|
|
|
%I
|
|
|
|
TID of thread that triggered core dump, as seen in the initial PID namespace
|
|
|
|
.\" commit b03023ecbdb76c1dec86b41ed80b123c22783220
|
|
|
|
(since Linux 3.18)
|
|
|
|
.TP
|
2014-03-14 14:09:55 +00:00
|
|
|
%p
|
|
|
|
PID of dumped process,
|
|
|
|
as seen in the PID namespace in which the process resides
|
|
|
|
.TP
|
|
|
|
%P
|
|
|
|
.\" Added in git commit 65aafb1e7484b7434a0c1d4c593191ebe5776a2f
|
|
|
|
PID of dumped process, as seen in the initial PID namespace
|
|
|
|
(since Linux 3.12)
|
|
|
|
.TP
|
|
|
|
%s
|
|
|
|
number of signal causing dump
|
|
|
|
.TP
|
|
|
|
%t
|
|
|
|
time of dump, expressed as seconds since the
|
|
|
|
Epoch, 1970-01-01 00:00:00 +0000 (UTC)
|
|
|
|
.TP
|
|
|
|
%u
|
|
|
|
(numeric) real UID of dumped process
|
2008-06-12 04:59:28 +00:00
|
|
|
.PD
|
|
|
|
.RE
|
|
|
|
.PP
|
2007-04-12 22:42:49 +00:00
|
|
|
A single % at the end of the template is dropped from the
|
|
|
|
core filename, as is the combination of a % followed by any
|
2006-03-31 07:05:11 +00:00
|
|
|
character other than those listed above.
|
|
|
|
All other characters in the template become a literal
|
|
|
|
part of the core filename.
|
2008-06-09 15:49:35 +00:00
|
|
|
The template may include \(aq/\(aq characters, which are interpreted
|
2006-03-31 07:05:11 +00:00
|
|
|
as delimiters for directory names.
|
2008-06-12 04:59:28 +00:00
|
|
|
The maximum size of the resulting core filename is 128 bytes (64 bytes
|
|
|
|
in kernels before 2.6.19).
|
2006-03-31 07:05:11 +00:00
|
|
|
The default value in this file is "core".
|
|
|
|
For backward compatibility, if
|
|
|
|
.I /proc/sys/kernel/core_pattern
|
2016-01-27 16:18:14 +00:00
|
|
|
does not include
|
|
|
|
.I %p
|
|
|
|
and
|
2006-03-31 07:05:11 +00:00
|
|
|
.I /proc/sys/kernel/core_uses_pid
|
|
|
|
(see below)
|
intro.1, time.1, adjtimex.2, capget.2, eventfd.2, fcntl.2, getrlimit.2, getsockopt.2, gettimeofday.2, intro.2, ioctl_list.2, ioperm.2, mlock.2, pivot_root.2, poll.2, prctl.2, ptrace.2, sched_setscheduler.2, select_tut.2, semget.2, sigaltstack.2, signalfd.2, sysctl.2, timer_settime.2, timerfd_create.2, wait.2, CPU_SET.3, argz_add.3, assert_perror.3, atexit.3, backtrace.3, bcmp.3, clearenv.3, ctime.3, dl_iterate_phdr.3, dlopen.3, ecvt.3, errno.3, error.3, ether_aton.3, exit.3, fenv.3, ferror.3, finite.3, flockfile.3, fnmatch.3, fpathconf.3, fpclassify.3, ftime.3, ftok.3, ftw.3, fwide.3, getaddrinfo.3, gethostbyname.3, getlogin.3, getnameinfo.3, getnetent.3, getopt.3, getprotoent.3, getrpcent.3, getservent.3, glob.3, hsearch.3, inet.3, isalpha.3, iswalnum.3, iswalpha.3, iswblank.3, iswcntrl.3, iswctype.3, iswdigit.3, iswgraph.3, iswlower.3, iswprint.3, iswpunct.3, iswspace.3, iswupper.3, iswxdigit.3, longjmp.3, lsearch.3, malloc.3, matherr.3, mblen.3, mbsinit.3, mbtowc.3, on_exit.3, printf.3, pthread_attr_init.3, pthread_attr_setaffinity_np.3, pthread_attr_setdetachstate.3, pthread_attr_setguardsize.3, pthread_attr_setinheritsched.3, pthread_attr_setschedparam.3, pthread_attr_setschedpolicy.3, pthread_attr_setscope.3, pthread_attr_setstack.3, pthread_attr_setstackaddr.3, pthread_attr_setstacksize.3, pthread_cancel.3, pthread_cleanup_push.3, pthread_equal.3, pthread_getattr_np.3, pthread_getcpuclockid.3, pthread_setaffinity_np.3, pthread_setcancelstate.3, pthread_setconcurrency.3, pthread_setschedparam.3, pthread_setschedprio.3, ptsname.3, putenv.3, putgrent.3, raise.3, rcmd.3, regex.3, rexec.3, rpc.3, rpmatch.3, rtnetlink.3, scandir.3, sem_init.3, setaliasent.3, setbuf.3, setenv.3, setjmp.3, signbit.3, stdio_ext.3, strtod.3, strtol.3, strtoul.3, system.3, termios.3, timeradd.3, tzset.3, ualarm.3, wctomb.3, xdr.3, st.4, tty_ioctl.4, core.5, elf.5, proc.5, bootparam.7, capabilities.7, icmp.7, ip.7, ipv6.7, math_error.7, mdoc.samples.7, mq_overview.7, pthreads.7, raw.7, regex.7, socket.7, tcp.7, tzselect.8: Global fix: s/non-zero/nonzero/
The tendency in English, as prescribed in style guides like
Chicago MoS, is towards removing hyphens after prefixes
like "non-" etc.
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2010-01-16 16:40:55 +00:00
|
|
|
is nonzero, then .PID will be appended to the core filename.
|
2006-03-31 07:05:11 +00:00
|
|
|
|
2016-10-06 17:24:37 +00:00
|
|
|
Paths are interpreted according to the settings that are active for the
|
|
|
|
crashing process.
|
2016-10-07 09:14:52 +00:00
|
|
|
That means the crashing process's mount namespace (see
|
|
|
|
.BR mount_namespaces (7)),
|
|
|
|
its current working directory (found via
|
2016-10-06 17:24:37 +00:00
|
|
|
.BR getcwd (2)),
|
2016-10-07 09:14:52 +00:00
|
|
|
and its root directory (see
|
|
|
|
.BR chroot (2)).
|
2016-10-06 17:24:37 +00:00
|
|
|
|
2006-11-25 01:45:17 +00:00
|
|
|
Since version 2.4, Linux has also provided
|
|
|
|
a more primitive method of controlling
|
2006-03-31 07:05:11 +00:00
|
|
|
the name of the core dump file.
|
|
|
|
If the
|
|
|
|
.I /proc/sys/kernel/core_uses_pid
|
|
|
|
file contains the value 0, then a core dump file is simply named
|
|
|
|
.IR core .
|
intro.1, time.1, adjtimex.2, capget.2, eventfd.2, fcntl.2, getrlimit.2, getsockopt.2, gettimeofday.2, intro.2, ioctl_list.2, ioperm.2, mlock.2, pivot_root.2, poll.2, prctl.2, ptrace.2, sched_setscheduler.2, select_tut.2, semget.2, sigaltstack.2, signalfd.2, sysctl.2, timer_settime.2, timerfd_create.2, wait.2, CPU_SET.3, argz_add.3, assert_perror.3, atexit.3, backtrace.3, bcmp.3, clearenv.3, ctime.3, dl_iterate_phdr.3, dlopen.3, ecvt.3, errno.3, error.3, ether_aton.3, exit.3, fenv.3, ferror.3, finite.3, flockfile.3, fnmatch.3, fpathconf.3, fpclassify.3, ftime.3, ftok.3, ftw.3, fwide.3, getaddrinfo.3, gethostbyname.3, getlogin.3, getnameinfo.3, getnetent.3, getopt.3, getprotoent.3, getrpcent.3, getservent.3, glob.3, hsearch.3, inet.3, isalpha.3, iswalnum.3, iswalpha.3, iswblank.3, iswcntrl.3, iswctype.3, iswdigit.3, iswgraph.3, iswlower.3, iswprint.3, iswpunct.3, iswspace.3, iswupper.3, iswxdigit.3, longjmp.3, lsearch.3, malloc.3, matherr.3, mblen.3, mbsinit.3, mbtowc.3, on_exit.3, printf.3, pthread_attr_init.3, pthread_attr_setaffinity_np.3, pthread_attr_setdetachstate.3, pthread_attr_setguardsize.3, pthread_attr_setinheritsched.3, pthread_attr_setschedparam.3, pthread_attr_setschedpolicy.3, pthread_attr_setscope.3, pthread_attr_setstack.3, pthread_attr_setstackaddr.3, pthread_attr_setstacksize.3, pthread_cancel.3, pthread_cleanup_push.3, pthread_equal.3, pthread_getattr_np.3, pthread_getcpuclockid.3, pthread_setaffinity_np.3, pthread_setcancelstate.3, pthread_setconcurrency.3, pthread_setschedparam.3, pthread_setschedprio.3, ptsname.3, putenv.3, putgrent.3, raise.3, rcmd.3, regex.3, rexec.3, rpc.3, rpmatch.3, rtnetlink.3, scandir.3, sem_init.3, setaliasent.3, setbuf.3, setenv.3, setjmp.3, signbit.3, stdio_ext.3, strtod.3, strtol.3, strtoul.3, system.3, termios.3, timeradd.3, tzset.3, ualarm.3, wctomb.3, xdr.3, st.4, tty_ioctl.4, core.5, elf.5, proc.5, bootparam.7, capabilities.7, icmp.7, ip.7, ipv6.7, math_error.7, mdoc.samples.7, mq_overview.7, pthreads.7, raw.7, regex.7, socket.7, tcp.7, tzselect.8: Global fix: s/non-zero/nonzero/
The tendency in English, as prescribed in style guides like
Chicago MoS, is towards removing hyphens after prefixes
like "non-" etc.
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2010-01-16 16:40:55 +00:00
|
|
|
If this file contains a nonzero value, then the core dump file includes
|
2006-03-31 07:05:11 +00:00
|
|
|
the process ID in a name of the form
|
|
|
|
.IR core.PID .
|
2013-01-12 10:30:24 +00:00
|
|
|
|
2013-01-12 11:11:46 +00:00
|
|
|
Since Linux 3.6,
|
2013-01-12 10:30:24 +00:00
|
|
|
.\" 9520628e8ceb69fa9a4aee6b57f22675d9e1b709
|
|
|
|
if
|
|
|
|
.I /proc/sys/fs/suid_dumpable
|
2013-01-12 11:11:46 +00:00
|
|
|
is set to 2 ("suidsafe"), the pattern must be either an absolute pathname
|
2013-01-12 10:30:24 +00:00
|
|
|
(starting with a leading \(aq/\(aq character) or a pipe, as defined below.
|
2008-06-12 04:59:28 +00:00
|
|
|
.SS Piping core dumps to a program
|
|
|
|
Since kernel 2.6.19, Linux supports an alternate syntax for the
|
|
|
|
.I /proc/sys/kernel/core_pattern
|
|
|
|
file.
|
|
|
|
If the first character of this file is a pipe symbol (\fB|\fP),
|
2016-04-21 09:20:17 +00:00
|
|
|
then the remainder of the line is interpreted as a user-space program to be
|
2008-06-12 04:59:28 +00:00
|
|
|
executed.
|
|
|
|
Instead of being written to a disk file, the core dump is given as
|
|
|
|
standard input to the program.
|
|
|
|
Note the following points:
|
|
|
|
.IP * 3
|
|
|
|
The program must be specified using an absolute pathname (or a
|
|
|
|
pathname relative to the root directory, \fI/\fP),
|
|
|
|
and must immediately follow the '|' character.
|
|
|
|
.IP *
|
2016-10-06 17:24:37 +00:00
|
|
|
The program pathname is interpreted with respect to the initial mount namespace
|
|
|
|
as it is always executed there.
|
2016-10-07 09:14:52 +00:00
|
|
|
It is not affected by the settings
|
|
|
|
(e.g., root directory, mount namespace, current working directory)
|
|
|
|
of the crashing process.
|
2016-10-06 17:24:37 +00:00
|
|
|
.IP *
|
2008-06-12 04:59:28 +00:00
|
|
|
The process created to run the program runs as user and group
|
|
|
|
.IR root .
|
|
|
|
.IP *
|
2016-10-06 17:24:37 +00:00
|
|
|
Running as
|
|
|
|
.I root
|
|
|
|
does not confer any exceptional security bypasses.
|
2016-10-07 09:14:52 +00:00
|
|
|
Namely, LSMs (e.g., SELinux) are still active and may prevent the handler
|
2016-10-06 17:24:37 +00:00
|
|
|
from accessing details about the crashed process via
|
2016-10-07 09:14:52 +00:00
|
|
|
.IR /proc/[pid] .
|
2016-10-06 17:24:37 +00:00
|
|
|
.IP *
|
|
|
|
The process created runs in the initial namespaces (pid, mount, user, etc...)
|
|
|
|
and not in the namespaces of the crashing process.
|
2016-10-07 09:14:52 +00:00
|
|
|
One can utilize specifiers such as
|
2016-10-06 17:24:37 +00:00
|
|
|
.I %P
|
|
|
|
to find the right
|
2016-10-07 09:14:52 +00:00
|
|
|
.I /proc/[pid]
|
2016-10-06 17:24:37 +00:00
|
|
|
directory and probe/enter the crashing process's namespaces if needed.
|
|
|
|
.IP *
|
2008-06-12 04:59:28 +00:00
|
|
|
Command-line arguments can be supplied to the
|
2013-01-06 21:10:16 +00:00
|
|
|
program (since Linux 2.6.24),
|
2008-06-12 04:59:28 +00:00
|
|
|
delimited by white space (up to a total line length of 128 bytes).
|
|
|
|
.IP *
|
|
|
|
The command-line arguments can include any of
|
|
|
|
the % specifiers listed above.
|
|
|
|
For example, to pass the PID of the process that is being dumped, specify
|
|
|
|
.I %p
|
|
|
|
in an argument.
|
2016-04-21 09:20:17 +00:00
|
|
|
.\"
|
|
|
|
.SS /proc/sys/kernel/core_pipe_limit
|
|
|
|
When collecting core dumps via a pipe to a user-space program,
|
|
|
|
it can be useful for the collecting program to gather data about
|
|
|
|
the crashing process from that process's
|
getrusage.2, madvise.2, memfd_create.2, mlock.2, mount.2, getauxval.3, core.5, capabilities.7, pid_namespaces.7, symlink.7, user_namespaces.7: Consistently use /proc/[pid] (not /proc/PID)
Reported-by: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2016-10-07 20:42:07 +00:00
|
|
|
.IR /proc/[pid]
|
2016-04-21 09:20:17 +00:00
|
|
|
directory.
|
|
|
|
In order to do this safely,
|
|
|
|
the kernel must wait for the program collecting the core dump to exit,
|
|
|
|
so as not to remove the crashing process's
|
getrusage.2, madvise.2, memfd_create.2, mlock.2, mount.2, getauxval.3, core.5, capabilities.7, pid_namespaces.7, symlink.7, user_namespaces.7: Consistently use /proc/[pid] (not /proc/PID)
Reported-by: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2016-10-07 20:42:07 +00:00
|
|
|
.IR /proc/[pid]
|
2016-04-21 09:20:17 +00:00
|
|
|
files prematurely.
|
|
|
|
This in turn creates the
|
|
|
|
possibility that a misbehaving collecting program can block
|
|
|
|
the reaping of a crashed process by simply never exiting.
|
|
|
|
|
|
|
|
Since Linux 2.6.32,
|
|
|
|
.\" commit a293980c2e261bd5b0d2a77340dd04f684caff58
|
|
|
|
the
|
|
|
|
.I /proc/sys/kernel/core_pipe_limit
|
|
|
|
can be used to defend against this possibility.
|
|
|
|
The value in this file defines how many concurrent crashing
|
|
|
|
processes may be piped to user-space programs in parallel.
|
|
|
|
If this value is exceeded, then those crashing processes above this value
|
|
|
|
are noted in the kernel log and their core dumps are skipped.
|
|
|
|
|
|
|
|
A value of 0 in this file is special.
|
|
|
|
It indicates that unlimited processes may be captured in parallel,
|
|
|
|
but that no waiting will take place (i.e., the collecting
|
|
|
|
program is not guaranteed access to
|
|
|
|
.IR /proc/<crashing-PID> ).
|
|
|
|
The default value for this file is 0.
|
|
|
|
.\"
|
2008-06-12 04:59:28 +00:00
|
|
|
.SS Controlling which mappings are written to the core dump
|
|
|
|
Since kernel 2.6.23, the Linux-specific
|
getrusage.2, madvise.2, memfd_create.2, mlock.2, mount.2, getauxval.3, core.5, capabilities.7, pid_namespaces.7, symlink.7, user_namespaces.7: Consistently use /proc/[pid] (not /proc/PID)
Reported-by: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2016-10-07 20:42:07 +00:00
|
|
|
.IR /proc/[pid]/coredump_filter
|
2008-06-12 04:59:28 +00:00
|
|
|
file can be used to control which memory segments are written to the
|
|
|
|
core dump file in the event that a core dump is performed for the
|
|
|
|
process with the corresponding process ID.
|
|
|
|
|
|
|
|
The value in the file is a bit mask of memory mapping types (see
|
|
|
|
.BR mmap (2)).
|
|
|
|
If a bit is set in the mask, then memory mappings of the
|
|
|
|
corresponding type are dumped; otherwise they are not dumped.
|
|
|
|
The bits in this file have the following meanings:
|
|
|
|
.PP
|
|
|
|
.PD 0
|
|
|
|
.RS 4
|
|
|
|
.TP
|
|
|
|
bit 0
|
|
|
|
Dump anonymous private mappings.
|
|
|
|
.TP
|
|
|
|
bit 1
|
|
|
|
Dump anonymous shared mappings.
|
|
|
|
.TP
|
|
|
|
bit 2
|
|
|
|
Dump file-backed private mappings.
|
|
|
|
.TP
|
|
|
|
bit 3
|
|
|
|
Dump file-backed shared mappings.
|
|
|
|
.\" file-backed shared mappings of course also update the underlying
|
|
|
|
.\" mapped file.
|
2010-02-27 04:35:07 +00:00
|
|
|
.TP
|
|
|
|
bit 4 (since Linux 2.6.24)
|
2010-06-10 01:08:04 +00:00
|
|
|
Dump ELF headers.
|
2010-02-27 04:35:07 +00:00
|
|
|
.TP
|
|
|
|
bit 5 (since Linux 2.6.28)
|
|
|
|
Dump private huge pages.
|
|
|
|
.TP
|
|
|
|
bit 6 (since Linux 2.6.28)
|
|
|
|
Dump shared huge pages.
|
2015-11-11 18:03:02 +00:00
|
|
|
.TP
|
|
|
|
bit 7 (since Linux 4.4)
|
2015-12-02 20:21:34 +00:00
|
|
|
.\" commit ab27a8d04b32b6ee8c30c14c4afd1058e8addc82
|
2015-11-11 18:03:02 +00:00
|
|
|
Dump private DAX pages.
|
|
|
|
.TP
|
|
|
|
bit 8 (since Linux 4.4)
|
2015-12-02 20:21:34 +00:00
|
|
|
.\" commit ab27a8d04b32b6ee8c30c14c4afd1058e8addc82
|
2015-11-11 18:03:02 +00:00
|
|
|
Dump shared DAX pages.
|
2008-06-12 04:59:28 +00:00
|
|
|
.RE
|
|
|
|
.PD
|
|
|
|
.PP
|
2010-02-27 04:35:07 +00:00
|
|
|
By default, the following bits are set: 0, 1, 4 (if the
|
|
|
|
.B CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS
|
|
|
|
kernel configuration option is enabled), and 5.
|
2015-06-25 10:07:27 +00:00
|
|
|
This default can be modified at boot time using the
|
|
|
|
.I coredump_filter
|
|
|
|
boot option.
|
|
|
|
|
2010-02-27 04:35:07 +00:00
|
|
|
The value of this file is displayed in hexadecimal.
|
|
|
|
(The default value is thus displayed as 33.)
|
2008-06-12 04:59:28 +00:00
|
|
|
|
2008-06-12 11:52:08 +00:00
|
|
|
Memory-mapped I/O pages such as frame buffer are never dumped, and
|
2008-06-12 04:59:28 +00:00
|
|
|
virtual DSO pages are always dumped, regardless of the
|
|
|
|
.I coredump_filter
|
|
|
|
value.
|
|
|
|
|
|
|
|
A child process created via
|
|
|
|
.BR fork (2)
|
2010-02-27 03:04:02 +00:00
|
|
|
inherits its parent's
|
2008-06-12 04:59:28 +00:00
|
|
|
.I coredump_filter
|
|
|
|
value;
|
2008-06-12 11:52:08 +00:00
|
|
|
the
|
2008-06-12 04:59:28 +00:00
|
|
|
.I coredump_filter
|
|
|
|
value is preserved across an
|
|
|
|
.BR execve (2).
|
|
|
|
|
|
|
|
It can be useful to set
|
|
|
|
.I coredump_filter
|
|
|
|
in the parent shell before running a program, for example:
|
|
|
|
|
|
|
|
.in +4n
|
|
|
|
.nf
|
eventfd.2, execve.2, getdents.2, ioprio_set.2, mprotect.2, signalfd.2, timerfd_create.2, wait.2, backtrace.3, clock_getcpuclockid.3, end.3, fmemopen.3, fopencookie.3, frexp.3, getdate.3, getgrouplist.3, getprotoent_r.3, getservent_r.3, gnu_get_libc_version.3, inet.3, inet_pton.3, makecontext.3, malloc.3, matherr.3, offsetof.3, pthread_attr_init.3, pthread_create.3, pthread_getattr_np.3, sem_wait.3, strftime.3, strtok.3, strtol.3, core.5, proc.5, cpuset.7, mq_overview.7: Global fix: Format user input in shell sessions in boldface
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2008-10-28 15:37:22 +00:00
|
|
|
.RB "$" " echo 0x7 > /proc/self/coredump_filter"
|
|
|
|
.RB "$" " ./some_program"
|
2008-06-12 04:59:28 +00:00
|
|
|
.fi
|
|
|
|
.in
|
|
|
|
.PP
|
intro.1, _syscall.2, access.2, arch_prctl.2, cacheflush.2, chown.2, clock_getres.2, clone.2, create_module.2, fcntl.2, flock.2, get_kernel_syms.2, get_robust_list.2, get_thread_area.2, getcpu.2, getpriority.2, getrlimit.2, getrusage.2, ioprio_set.2, kexec_load.2, madvise.2, mbind.2, migrate_pages.2, mknod.2, mmap.2, mount.2, move_pages.2, mprotect.2, open.2, pause.2, pciconfig_read.2, perf_event_open.2, prctl.2, ptrace.2, query_module.2, read.2, reboot.2, recv.2, s390_runtime_instr.2, sched_setscheduler.2, select_tut.2, send.2, set_mempolicy.2, setfsgid.2, setfsuid.2, sigaction.2, spu_create.2, spu_run.2, stime.2, swapon.2, syslog.2, timer_create.2, timer_getoverrun.2, times.2, tkill.2, umount.2, unimplemented.2, ustat.2, vm86.2, wait.2, abs.3, aio_read.3, aio_write.3, bsd_signal.3, catgets.3, clearenv.3, cmsg.3, dbopen.3, dirfd.3, dlopen.3, exec.3, fenv.3, ferror.3, fmemopen.3, fnmatch.3, fopen.3, futimes.3, getaddrinfo.3, getifaddrs.3, getipnodebyname.3, hsearch.3, if_nameindex.3, inet_pton.3, mblen.3, mbrlen.3, mbsrtowcs.3, mbtowc.3, mcheck.3, memfrob.3, mq_notify.3, netlink.3, posix_memalign.3, printf.3, pthread_attr_setscope.3, pthread_cleanup_push.3, pthread_kill_other_threads_np.3, pthread_self.3, pthread_setcancelstate.3, pthread_setconcurrency.3, raise.3, resolver.3, rpc.3, rtime.3, rtnetlink.3, scanf.3, setbuf.3, setnetgrent.3, shm_open.3, sigpause.3, sigset.3, sigwait.3, sockatmark.3, strcasecmp.3, strcmp.3, strdup.3, strftime.3, strptime.3, strsignal.3, strverscmp.3, sysv_signal.3, termios.3, wcrtomb.3, wcsnlen.3, wcsnrtombs.3, wcsrtombs.3, wctomb.3, wprintf.3, console_codes.4, cpuid.4, msr.4, rtc.4, sk98lin.4, st.4, tty.4, charmap.5, core.5, elf.5, hosts.equiv.5, proc.5, resolv.conf.5, services.5, slabinfo.5, arp.7, bootparam.7, capabilities.7, charsets.7, cpuset.7, ddp.7, epoll.7, feature_test_macros.7, futex.7, hier.7, icmp.7, inotify.7, ip.7, ipv6.7, man-pages.7, mdoc.7, mdoc.samples.7, netdevice.7, netlink.7, numa.7, packet.7, path_resolution.7, posixoptions.7, pthreads.7, raw.7, rtld-audit.7, rtnetlink.7, sem_overview.7, sigevent.7, socket.7, spufs.7, tcp.7, udp.7, unicode.7, uri.7, utf-8.7, intro.8, ldconfig.8, sync.8: Global fix: fix placement of word "only"
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2013-03-31 08:53:00 +00:00
|
|
|
This file is provided only if the kernel was built with the
|
2008-07-02 13:38:55 +00:00
|
|
|
.B CONFIG_ELF_CORE
|
|
|
|
configuration option.
|
2006-03-31 07:05:11 +00:00
|
|
|
.SH NOTES
|
2007-04-12 22:42:49 +00:00
|
|
|
The
|
2006-03-31 07:05:11 +00:00
|
|
|
.BR gdb (1)
|
|
|
|
.I gcore
|
|
|
|
command can be used to obtain a core dump of a running process.
|
2006-04-15 01:11:58 +00:00
|
|
|
|
2013-06-08 10:02:57 +00:00
|
|
|
In Linux versions up to and including 2.6.27,
|
|
|
|
.\" Changed with commit 6409324b385f3f63a03645b4422e3be67348d922
|
|
|
|
if a multithreaded process (or, more precisely, a process that
|
2006-04-15 01:11:58 +00:00
|
|
|
shares its memory with another process by being created with the
|
|
|
|
.B CLONE_VM
|
|
|
|
flag of
|
|
|
|
.BR clone (2))
|
2007-04-12 22:42:49 +00:00
|
|
|
dumps core, then the process ID is always appended to the core filename,
|
2006-04-15 20:58:17 +00:00
|
|
|
unless the process ID was already included elsewhere in the
|
2016-01-27 16:18:14 +00:00
|
|
|
filename via a
|
|
|
|
.I %p
|
|
|
|
specification in
|
2006-04-15 01:11:58 +00:00
|
|
|
.IR /proc/sys/kernel/core_pattern .
|
2013-06-08 10:02:57 +00:00
|
|
|
(This is primarily useful when employing the obsolete
|
|
|
|
LinuxThreads implementation,
|
2007-06-16 11:32:28 +00:00
|
|
|
where each thread of a process has a different PID.)
|
2006-04-15 21:31:43 +00:00
|
|
|
.\" Always including the PID in the name of the core file made
|
|
|
|
.\" sense for LinuxThreads, where each thread had a unique PID,
|
2007-06-16 08:52:28 +00:00
|
|
|
.\" but doesn't seem to serve any purpose with NPTL, where all the
|
2007-04-12 22:42:49 +00:00
|
|
|
.\" threads in a process share the same PID (as POSIX.1 requires).
|
2007-06-08 09:56:56 +00:00
|
|
|
.\" Probably the behavior is maintained so that applications using
|
2007-04-12 22:42:49 +00:00
|
|
|
.\" LinuxThreads continue appending the PID (the kernel has no easy
|
eventfd.2, futex.2, mmap2.2, open.2, pciconfig_read.2, ptrace.2, reboot.2, request_key.2, sched_rr_get_interval.2, splice.2, stat.2, sync_file_range.2, syscalls.2, timer_create.2, vm86.2, pthread_attr_setscope.3, core.5, proc.5, aio.7, futex.7, netlink.7, time.7: Global fix: "userspace" ==> "user space" or "user-space"
Existing pages variously use "userspace or "user space".
But, "userspace" is not quite an English word.
So change "userspace" to "user space" or, when used
attributively, "user-space".
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2012-10-21 06:04:42 +00:00
|
|
|
.\" way of telling which threading implementation the user-space
|
2006-04-15 20:58:17 +00:00
|
|
|
.\" application is using). -- mtk, April 2006
|
2008-06-12 04:59:28 +00:00
|
|
|
.SH EXAMPLE
|
|
|
|
The program below can be used to demonstrate the use of the
|
2008-06-12 11:52:08 +00:00
|
|
|
pipe syntax in the
|
2008-06-12 04:59:28 +00:00
|
|
|
.I /proc/sys/kernel/core_pattern
|
|
|
|
file.
|
|
|
|
The following shell session demonstrates the use of this program
|
|
|
|
(compiled to create an executable named
|
|
|
|
.IR core_pattern_pipe_test ):
|
|
|
|
.PP
|
|
|
|
.in +4n
|
|
|
|
.nf
|
eventfd.2, execve.2, getdents.2, ioprio_set.2, mprotect.2, signalfd.2, timerfd_create.2, wait.2, backtrace.3, clock_getcpuclockid.3, end.3, fmemopen.3, fopencookie.3, frexp.3, getdate.3, getgrouplist.3, getprotoent_r.3, getservent_r.3, gnu_get_libc_version.3, inet.3, inet_pton.3, makecontext.3, malloc.3, matherr.3, offsetof.3, pthread_attr_init.3, pthread_create.3, pthread_getattr_np.3, sem_wait.3, strftime.3, strtok.3, strtol.3, core.5, proc.5, cpuset.7, mq_overview.7: Global fix: Format user input in shell sessions in boldface
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2008-10-28 15:37:22 +00:00
|
|
|
.RB "$" " cc \-o core_pattern_pipe_test core_pattern_pipe_test.c"
|
|
|
|
.RB "$" " su"
|
2008-06-12 04:59:28 +00:00
|
|
|
Password:
|
2010-11-15 06:19:26 +00:00
|
|
|
.RB "#" " echo \(dq|$PWD/core_pattern_pipe_test %p \
|
time.1, atexit.3, bsearch.3, dlopen.3, envz_add.3, errno.3, fmtmsg.3, getgrent_r.3, getline.3, getmntent.3, getnameinfo.3, getpass.3, getpwent_r.3, gets.3, isalpha.3, printf.3, puts.3, recno.3, scandir.3, stdarg.3, sysconf.3, termios.3, wordexp.3, null.4, core.5, dir_colors.5, issue.5, proc.5, termcap.5, utmp.5, ascii.7, cpuset.7, glob.7, man-pages.7, man.7, mdoc.7, mdoc.samples.7, regex.7: Revert 9f8e673e623d (whose global s%\\e%\\\\% caused problems)
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2012-09-26 21:56:54 +00:00
|
|
|
UID=%u GID=%g sig=%s\(dq > \e"
|
eventfd.2, execve.2, getdents.2, ioprio_set.2, mprotect.2, signalfd.2, timerfd_create.2, wait.2, backtrace.3, clock_getcpuclockid.3, end.3, fmemopen.3, fopencookie.3, frexp.3, getdate.3, getgrouplist.3, getprotoent_r.3, getservent_r.3, gnu_get_libc_version.3, inet.3, inet_pton.3, makecontext.3, malloc.3, matherr.3, offsetof.3, pthread_attr_init.3, pthread_create.3, pthread_getattr_np.3, sem_wait.3, strftime.3, strtok.3, strtol.3, core.5, proc.5, cpuset.7, mq_overview.7: Global fix: Format user input in shell sessions in boldface
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2008-10-28 15:37:22 +00:00
|
|
|
.B " /proc/sys/kernel/core_pattern"
|
|
|
|
.RB "#" " exit"
|
|
|
|
.RB "$" " sleep 100"
|
time.1, atexit.3, bsearch.3, dlopen.3, envz_add.3, errno.3, fmtmsg.3, getgrent_r.3, getline.3, getmntent.3, getnameinfo.3, getpass.3, getpwent_r.3, gets.3, isalpha.3, printf.3, puts.3, recno.3, scandir.3, stdarg.3, sysconf.3, termios.3, wordexp.3, null.4, core.5, dir_colors.5, issue.5, proc.5, termcap.5, utmp.5, ascii.7, cpuset.7, glob.7, man-pages.7, man.7, mdoc.7, mdoc.samples.7, regex.7: Revert 9f8e673e623d (whose global s%\\e%\\\\% caused problems)
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2012-09-26 21:56:54 +00:00
|
|
|
.BR "^\e" " # type control-backslash"
|
2008-06-12 04:59:28 +00:00
|
|
|
Quit (core dumped)
|
eventfd.2, execve.2, getdents.2, ioprio_set.2, mprotect.2, signalfd.2, timerfd_create.2, wait.2, backtrace.3, clock_getcpuclockid.3, end.3, fmemopen.3, fopencookie.3, frexp.3, getdate.3, getgrouplist.3, getprotoent_r.3, getservent_r.3, gnu_get_libc_version.3, inet.3, inet_pton.3, makecontext.3, malloc.3, matherr.3, offsetof.3, pthread_attr_init.3, pthread_create.3, pthread_getattr_np.3, sem_wait.3, strftime.3, strtok.3, strtol.3, core.5, proc.5, cpuset.7, mq_overview.7: Global fix: Format user input in shell sessions in boldface
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2008-10-28 15:37:22 +00:00
|
|
|
.RB "$" " cat core.info"
|
2008-06-12 04:59:28 +00:00
|
|
|
argc=5
|
|
|
|
argc[0]=</home/mtk/core_pattern_pipe_test>
|
|
|
|
argc[1]=<20575>
|
|
|
|
argc[2]=<UID=1000>
|
|
|
|
argc[3]=<GID=100>
|
|
|
|
argc[4]=<sig=3>
|
|
|
|
Total bytes in core dump: 282624
|
|
|
|
.fi
|
|
|
|
.in
|
eventfd.2, getdents.2, mprotect.2, signalfd.2, timerfd_create.2, wait.2, backtrace.3, clock_getcpuclockid.3, end.3, fmemopen.3, fopencookie.3, getdate.3, getgrouplist.3, getprotoent_r.3, getservent_r.3, gnu_get_libc_version.3, inet.3, inet_pton.3, makecontext.3, matherr.3, offsetof.3, pthread_attr_init.3, pthread_create.3, pthread_getattr_np.3, sem_wait.3, strtol.3, core.5: global fix: Add ".SS Program source" to EXAMPLE
Add ".SS Program source" to clearly distinguish shell session and
descriptive text from actual program code.
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2008-10-28 15:51:05 +00:00
|
|
|
.SS Program source
|
eventfd.2, getdents.2, mprotect.2, signalfd.2, timerfd_create.2, wait.2, backtrace.3, clock_getcpuclockid.3, end.3, fmemopen.3, fopencookie.3, frexp.3, getaddrinfo.3, getdate.3, getgrouplist.3, getprotoent_r.3, getservent_r.3, gnu_get_libc_version.3, inet.3, inet_pton.3, makecontext.3, matherr.3, offsetof.3, pthread_attr_init.3, pthread_create.3, pthread_getattr_np.3, sem_wait.3, strftime.3, strtok.3, strtol.3, core.5: srcfix
s/\.R " "/\\\&/ as a way of getting a blank line after a .SS heading.
(Suggested by Sam Varshavchik <mrsam@courier-mta.com>)
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2008-11-05 01:42:45 +00:00
|
|
|
\&
|
2008-06-12 04:59:28 +00:00
|
|
|
.nf
|
|
|
|
/* core_pattern_pipe_test.c */
|
|
|
|
|
|
|
|
#define _GNU_SOURCE
|
|
|
|
#include <sys/stat.h>
|
|
|
|
#include <fcntl.h>
|
|
|
|
#include <limits.h>
|
|
|
|
#include <stdio.h>
|
|
|
|
#include <stdlib.h>
|
|
|
|
#include <unistd.h>
|
|
|
|
|
|
|
|
#define BUF_SIZE 1024
|
|
|
|
|
|
|
|
int
|
|
|
|
main(int argc, char *argv[])
|
|
|
|
{
|
|
|
|
int tot, j;
|
|
|
|
ssize_t nread;
|
|
|
|
char buf[BUF_SIZE];
|
|
|
|
FILE *fp;
|
|
|
|
char cwd[PATH_MAX];
|
|
|
|
|
2008-06-12 11:52:08 +00:00
|
|
|
/* Change our current working directory to that of the
|
2008-06-12 04:59:28 +00:00
|
|
|
crashing process */
|
|
|
|
|
|
|
|
snprintf(cwd, PATH_MAX, "/proc/%s/cwd", argv[1]);
|
|
|
|
chdir(cwd);
|
|
|
|
|
|
|
|
/* Write output to file "core.info" in that directory */
|
|
|
|
|
|
|
|
fp = fopen("core.info", "w+");
|
|
|
|
if (fp == NULL)
|
|
|
|
exit(EXIT_FAILURE);
|
|
|
|
|
|
|
|
/* Display command\-line arguments given to core_pattern
|
|
|
|
pipe program */
|
|
|
|
|
|
|
|
fprintf(fp, "argc=%d\\n", argc);
|
|
|
|
for (j = 0; j < argc; j++)
|
|
|
|
fprintf(fp, "argc[%d]=<%s>\\n", j, argv[j]);
|
|
|
|
|
|
|
|
/* Count bytes in standard input (the core dump) */
|
|
|
|
|
|
|
|
tot = 0;
|
2008-06-12 11:52:08 +00:00
|
|
|
while ((nread = read(STDIN_FILENO, buf, BUF_SIZE)) > 0)
|
2008-06-12 04:59:28 +00:00
|
|
|
tot += nread;
|
|
|
|
fprintf(fp, "Total bytes in core dump: %d\\n", tot);
|
|
|
|
|
2014-08-02 10:02:57 +00:00
|
|
|
fclose(fp);
|
2008-06-12 04:59:28 +00:00
|
|
|
exit(EXIT_SUCCESS);
|
|
|
|
}
|
|
|
|
.fi
|
2006-03-31 07:05:11 +00:00
|
|
|
.SH SEE ALSO
|
2008-08-26 18:16:56 +00:00
|
|
|
.BR bash (1),
|
2006-03-31 07:05:11 +00:00
|
|
|
.BR gdb (1),
|
|
|
|
.BR getrlimit (2),
|
2008-07-01 14:02:46 +00:00
|
|
|
.BR mmap (2),
|
2006-03-31 07:05:11 +00:00
|
|
|
.BR prctl (2),
|
|
|
|
.BR sigaction (2),
|
|
|
|
.BR elf (5),
|
|
|
|
.BR proc (5),
|
2007-06-16 11:32:28 +00:00
|
|
|
.BR pthreads (7),
|
2006-03-31 07:05:11 +00:00
|
|
|
.BR signal (7)
|