Hello To All!
Now anfd then I receive a message on my console:
Segmentation fault \(core dumped\)
What does it mean? Or more precisely what are the implications?
Hello To All!
Now anfd then I receive a message on my console:
Segmentation fault \(core dumped\)
What does it mean? Or more precisely what are the implications?
You can get a core dump because of many things. It normally is because of environment variables not being correct. I get the following every time I forget to set my term to vt100 -
$ echo $TERM
dtterm
$ vi /etc/motd
dtterm: Unknown terminal type
[Using open mode]
Segmentation Fault(coredump)
$ ls -l core
-rw-r--r-- 1 tghunter sysadmin 562480 Feb 8 10:13 core
$ file core
core: ELF 32-bit MSB core file SPARC Version 1, from 'vi'
As you can see I tried to vi a file but my term was dtterm instead of vt100 (I was doing a telnet to another server). It dumps a core file which can be removed. Programmers will use core files to check their code when they have a problem. Most admins have a cron job to remove core files from the filesystems (but watch out, some applications have files called somethingcore - removing them causes headaches!)
Example of programmers having problems:
Calls to Performance Library routines cause segmentation faults. What could be wrong and what can I do?
You may be experiencing stack overflow in your program. There are two types of stack space that need to be addressed.
First, there is the stack space allocated to a process. This is controlled by the limit command. Try unlimiting your process stack by saying:
% unlimit stacksize
Secondly, if your program is multi-threaded each thread must have its own stack space. This is controlled by the ${STACKSIZE} environment variable. The units are in KB so saying:
% setenv STACKSIZE 4000
sets each thread's stack size to 4 MB. This is the minimum value that Performance Library requires, so make sure that ${STACKSIZE} is set to at least 4000. You may need to increase this value if your program uses large stack based variables.