HOWTO enable core-dumps
Note: These steps are for Fedora Core, but should work on other Linux systems as well.
[edit] What are core-dump?
When a program crashes then it may leave a core which can be used to figure out exactly why the program crashed - which is specially useful if you are a programmer.
Core dumps are disabled by default on many Linux distributions as core-dumping on production machines is generally considered a bad idea.
[edit] HOWTO enable core-dumps
To enable core dumps for all daemon, please follow these steps:
Edit the /etc/profile. At line 26 of the file, replace this line:
ulimit -S -c 0 > /dev/null 2>&1
with this line:
ulimit -c unlimited >/dev/null 2>&1
Replace this line (around line 138 on Fedora) in /etc/init.d/functions
ulimit -S -c 0 >/dev/null 2>&1
with this:
ulimit -S -c ${DAEMON_COREFILE_LIMIT:-0} >/dev/null 2>&1
(this is now default on Fedora Core <3)
Enable core-dumping globally by editing the /etc/sysconfig/init file and adding the line:
DAEMON_COREFILE_LIMIT='unlimited'
Enable it for specific daemons by adding this line in the /etc/sysconfig/$daemon:
DAEMON_COREFILE_LIMIT='unlimited'
Optionally, enable core dump for SUID programs:
echo 1 > /proc/sys/fs/suid_dumpable
Edit the /etc/sysctl.conf and add the following:
fs.suid_dumpable = 1 kernel.core_uses_pid = 1
Then reload the settings in /etc/sysctl.conf:
sysctl -p
If you want to core dump on setuid programs you launch (for example, X), make sure the current directory is world writable.