I would like to force a core dump at a specific location in my C++ application.
I know I can do it by doing something like:
int * crash = NULL;
*crash = 1;
Raising of signal number 6 (
SIGABRT in Linux) is one way to do it (though keep in mind that SIGABRT is not required to be 6 in all POSIX implementations so you may want to use the
SIGABRT value itself if this is anything other than quick'n'dirty debug code).
#include <signal.h> : : : raise (SIGABRT);
abort() will also cause a core dump, and you can even do this without terminating your process by calling
fork() followed by
abort() in the child only - see this answer for details.