Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

I'm trying to understand the core dump generation. Is the core dump generated separately for a user space application process crash and the kernel level crash? Is the ulimit -c for both kinds? Can you please clarify?

share|improve this question

1 Answer 1

up vote 3 down vote accepted

When a userland program crashes, it can leave a core file behind, containig a copy of the contents of the memory when it went down (the core name comes from the prehistory of computing, when memory was core). This is controlled by the ulimit(1) command, it is normally disabled as the core files are large and tend to confuse newbies. A core file can be analyzed by e.g. a debugger, together with the executable and symbol table, to find out what happened.

When the kernel crashes, it normally triggers a kernel panic. If the kernel has found some critical inconsistency, it really isn't wise to count on it bahaving sanely to write out anything. So no core gets generated, and the system goes down. Contents of registers and code surrounding the address where the problem happened is written to the console. It is a good idea to save this (e.g. take a picture) for possible later analysis.

A similar situation is the kernel Oops, when the kernel detects an inconsistency that isn't considered fatal. In that case (as in a kernel panic) contents of registers and code surrounding the address where the problem happened is written to the console, and also logged.

share|improve this answer
    
In my case the kernel version is 2.4.20 and it does not have the proc/sys/kernel/core_pattern file to specify my own path to dump the core file. Whenever I build the kernel(along with the application) and load the bin in my embedded system the current directory is always / and hence it is not able to generate the core dump when my application crashes,maybe due to the permissions issue. Is there any way that I can change the location of the core dump file or change the permissions of the / dir or change the current dir / to other dir say /tmp. Also there is no sysctl.conf file. –  foo_l Mar 11 '13 at 6:37
    
The simplest may be to move the current working directory of the bin. If you can control how it starts, then first cd to a directory other than / and start it from there. Otherwise, have the bin call chdir("/tmp") (or other dir) if you can. Changing permissions on / is possible, but may be unwise for security reasons. –  ash Aug 28 '13 at 13:02

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.