diff options
Diffstat (limited to 'src/libmain/shared.cc')
-rw-r--r-- | src/libmain/shared.cc | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/libmain/shared.cc b/src/libmain/shared.cc index 4796629dc48c..ee0dccc9d11d 100644 --- a/src/libmain/shared.cc +++ b/src/libmain/shared.cc @@ -13,6 +13,7 @@ #include <sys/time.h> #include <sys/stat.h> #include <unistd.h> +#include <signal.h> #if HAVE_BOEHMGC #include <gc/gc.h> @@ -100,6 +101,9 @@ string getArg(const string & opt, } +void detectStackOverflow(); + + /* Initialize and reorder arguments, then call the actual argument processor. */ static void initAndRun(int argc, char * * argv) @@ -131,6 +135,9 @@ static void initAndRun(int argc, char * * argv) if (sigaction(SIGCHLD, &act, 0)) throw SysError("resetting SIGCHLD"); + /* Register a SIGSEGV handler to detect stack overflows. */ + detectStackOverflow(); + /* There is no privacy in the Nix system ;-) At least not for now. In particular, store objects should be readable by everybody. */ |