]> Cypherpunks repositories - gostls13.git/commitdiff
lib9/main.c: don't show the crash dialog on windows
authorShenghou Ma <minux.ma@gmail.com>
Sat, 2 Feb 2013 22:11:25 +0000 (06:11 +0800)
committerShenghou Ma <minux.ma@gmail.com>
Sat, 2 Feb 2013 22:11:25 +0000 (06:11 +0800)
Fixes #3202. (Or rather, work around issue 3202)

R=alex.brainman, rsc
CC=golang-dev
https://golang.org/cl/7202053

src/lib9/main.c

index 45f86c7ec73fc0704c14e99d0c991afe7dae428d..85a73f9f29e2ce7217c586a0aafada9ba92ec42a 100644 (file)
@@ -27,11 +27,28 @@ THE SOFTWARE.
 #define NOPLAN9DEFINES
 #include <libc.h>
 
+#ifdef WIN32
+#include <windows.h>
+
+static void crashhandler() {
+       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;