02-08-2002
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.
10 More Discussions You Might Find Interesting
1. Programming
what r the situations to receive an error msg like the one below
Segmentation Fault (core dumped) (2 Replies)
Discussion started by: bankpro
2 Replies
2. UNIX for Advanced & Expert Users
I use SCO UNIX 5.07 on a Compaq Proliant Machine. Each time I press the Escape or Delete key while running a program or issuing a FoxBase+ command from the dot prompt, I receive the error message: "Memory Fault - Core Dumped" and the screen locks up immediately.
I would appreciate if necessary... (0 Replies)
Discussion started by: bayuz
0 Replies
3. Solaris
i am getting Segmentation Fault (core dumped) on solaris,
but when i run the same program with same input on linux it runs successfully.
How can i trace the fault in program on solaris. (6 Replies)
Discussion started by: junaid.nehvi
6 Replies
4. Solaris
i am getting segmentation fault (core dumped)
i tried following things but couldn't understand what is wrong with my prog and where the problem is....
i have only adb debugger available on solaris....
so plz help
bash-3.00$ pstack core
core 'core' of 765: ./mod_generalised_tapinread... (4 Replies)
Discussion started by: junaid.nehvi
4 Replies
5. Red Hat
Hi All,
I am getting "Segmentation fault (core dumped)" error in the runtime. I am new this please can you tell me why is that i am getting this error and I am not sure of my compilation :
gcc -c avc_test.c
gcc -c md5.c
gcc avc_test.o md5.o -shared -Llibcoreavc_sdk.so -o proj
... (1 Reply)
Discussion started by: fido.genial
1 Replies
6. Programming
i am executing following program
int main()
{ char str;
FILE * fp;
int i=0; ... (4 Replies)
Discussion started by: bhavesh.sapra
4 Replies
7. UNIX for Advanced & Expert Users
When I was trying to mirror in my v880 server after OS up gradation from 8 to 10
metadb -afc 3 /dev/dsk/c1t1d0s7
I got an error
metadb: Segmentation Fault
Segmentation Fault (core dumped)
Then I logged a case to Oracle/sun team they suggest
"Please could you try
metadb -ac 3... (0 Replies)
Discussion started by: taherahmed
0 Replies
8. Programming
When I run programm show this message: Memory Fault (core dumped)
Does anyone can help me and tell me what is wrong? please
#include <stdlib.h>
#include <stdio.h>
#include <process.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>
int main(int argc, char *argv) { ... (3 Replies)
Discussion started by: ebasse2
3 Replies
9. UNIX and Linux Applications
Can anyone tell me why I keep getting a Segmentation fault when I try to run tilda?
$ tilda
Segmentation fault (core dumped)
It seemed to run after I deleted my tilda directory like this thread said to do. Unfortunately it wouldn't let me set my keybinding with anything I tried.
... (0 Replies)
Discussion started by: cokedude
0 Replies
10. UNIX for Dummies Questions & Answers
Hi,
thanks to a precedent post, and thanks to the reply of derekludwig of the forum, I have convert my first awk command as :
test.txt is : AAAAAGHIJKLAjKMEFJKLjklABCDJkLEFGHIJKL
awk -f findstring.awk test.txt > textreturn.txtfindstring.awk is :
BEGIN{ SLENGTH = 3 }
{
... (3 Replies)
Discussion started by: thewizarde6
3 Replies
CHMEM(1) General Commands Manual CHMEM(1)
NAME
chmem - change memory allocation
SYNOPSIS
chmem [+] [-] [=] amount file
EXAMPLES
chmem =50000 a.out # Give a.out 50K of stack space
chmem -4000 a.out # Reduce the stack space by 4000 bytes
chmem +1000 file1 # Increase each stack by 1000 bytes
DESCRIPTION
When a program is loaded into memory, it is allocated enough memory for the text and data+bss segments, plus an area for the stack. Data
segment growth using malloc , brk , or sbrk eats up stack space from the low end. The amount of stack space to allocate is derived from a
field in the executable program's file header. If the combined stack and data segment growth exceeds the stack space allocated, the pro-
gram will be terminated.
It is therefore important to set the amount of stack space carefully. If too little is provided, the program may crash. If too much is
provided, memory will be wasted, and fewer programs will be able to fit in memory and run simultaneously. MINIX does not swap, so that
when memory is full, subsequent attempts to fork will fail. The compiler sets the stack space to the largest possible value (for the Intel
CPUs, 64K - text - data). For many programs, this value is far too large. Nonrecursive programs that do not call brk , sbrk , or malloc ,
and do not have any local arrays usually do not need more than 8K of stack space.
The chmem command changes the value of the header field that determines the stack allocation, and thus indirectly the total memory required
to run the program. The = option sets the stack size to a specific value; the + and - options increment and decrement the current value by
the indicated amount. The old and new stack sizes are printed.
SEE ALSO
install(1), brk(2).
CHMEM(1)