|
|
Question : I want my core dumps
|
|
I've got a server program running on Linux (kernel 2.6.13 x86_64), and my problem is that when the program catches SIGSEGV (segmentation fault) and then reacts to it by calling abort(), no core dump is written. There's no limit on core file size, and since server programs are pain in the behind to debug, I'd rather like to see what the dump has to say. How can I ensure that the dump is written properly (or inproperly in the case the system is for some reason "supposed" to not write a core dump)?
[root ~]# ulimit -a core file size (blocks, -c) unlimited data seg size (kbytes, -d) unlimited file size (blocks, -f) unlimited pending signals (-i) 32251 max locked memory (kbytes, -l) 32 max memory size (kbytes, -m) unlimited open files (-n) 1024 pipe size (512 bytes, -p) 8 POSIX message queues (bytes, -q) 819200 stack size (kbytes, -s) 8192 cpu time (seconds, -t) unlimited max user processes (-u) 32251 virtual memory (kbytes, -v) unlimited file locks (-x) unlimited
[root ~]# ls -la . drwxrwx-w- 3 root root 83 May 17 13:48 .
|
Answer : I want my core dumps
|
|
man prctl # flag PR_SET_DUMPABLE and make sure current working directory for process is writeable by euid of the process. Also check out /proc/sys/kernel/core_pattern (it may use pattern reffering another directory, which is unwriteable for process)
|
|
|
|
|