If you can change the program adding a call to abort()
will generate a core dump in many unix environments.
You need to make sure that you have core files enabled. The most common reason for core files not being generated is a zero size core ulimit. Check with the command ulimit -c
and reset if zero with ulimit -c unlimited
.
If you don't want to change the program you can send an abort signal with the kill command: kill -SIGABRT <pid>
but with such a short program you are probably going to have to used a script and even then you may not be able to get the signal in before the process exits.
With bash you can try something like this (assuming that your program is called a.out
and is in the current directory):
./a.out & kill -SIGABRT $!
&
says run this in the background and $!
is the PID of the most recently executed background command.