This is raised when the program attempts has a bad memory reference such as:
This is almost invariably a programming fault.
The default action for this signal is to cause the program to terminate and dump core.
A classic example is to dereference a pointer in C that is either uninitialised, or has already been freed. Here is some C code:
#include <stdio.h>
int main(void) {
int *pointer;
pointer = 0;
printf("Value pointed to by pointer is %d\n",
*pointer /* this will cause SEGV */
);
}
See CommonProgrammingBugs for hints on how to track down memory related bugs in the SourceCode.