diff options
author | Michael Stapelberg <stapelberg@debian.org> | 2013-03-04 21:27:36 +0100 |
---|---|---|
committer | Michael Stapelberg <michael@stapelberg.de> | 2013-03-04 21:27:36 +0100 |
commit | 04b08da9af0c450d645ab7389d1467308cfc2db8 (patch) | |
tree | db247935fa4f2f94408edc3acd5d0d4f997aa0d8 /src/lib9/main.c | |
parent | 917c5fb8ec48e22459d77e3849e6d388f93d3260 (diff) | |
download | golang-04b08da9af0c450d645ab7389d1467308cfc2db8.tar.gz |
Imported Upstream version 1.1~hg20130304upstream/1.1_hg20130304
Diffstat (limited to 'src/lib9/main.c')
-rw-r--r-- | src/lib9/main.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/lib9/main.c b/src/lib9/main.c index 45f86c7ec..816494af0 100644 --- a/src/lib9/main.c +++ b/src/lib9/main.c @@ -27,11 +27,31 @@ THE SOFTWARE. #define NOPLAN9DEFINES #include <libc.h> +#ifdef WIN32 +#include <windows.h> + +static void +crashhandler(int sig) +{ + USED(sig); + fprint(2, "%s: internal fatal error.\n", argv0); + exit(1); +} +#endif + extern void p9main(int, char**); int main(int argc, char **argv) { +#ifdef WIN32 + signal(SIGSEGV, crashhandler); + signal(SIGBUS, crashhandler); + // don't display the crash dialog + DWORD mode = SetErrorMode(SEM_NOGPFAULTERRORBOX); + SetErrorMode(mode | SEM_FAILCRITICALERRORS | SEM_NOGPFAULTERRORBOX | SEM_NOOPENFILEERRORBOX); + argv0 = argv[0]; +#endif p9main(argc, argv); exits("main"); return 99; |