diff --git a/WPrefs.app/main.c b/WPrefs.app/main.c index 1ad2edb..fb0d745 100644 --- a/WPrefs.app/main.c +++ b/WPrefs.app/main.c @@ -83,8 +83,13 @@ void AddDeadChildHandler(pid_t pid, void (*handler) (void *), void *data) static void crash_handler(int sig) { void *bt[32]; int n = backtrace(bt, 32); - fprintf(stderr, "\n=== WPrefs CRASH (signal %d) ===\n", sig); + const char *msg = "\n=== WPrefs CRASH ===\n"; + write(STDERR_FILENO, msg, strlen(msg)); + char sigbuf[32]; + int slen = snprintf(sigbuf, sizeof(sigbuf), "signal %d\n", sig); + write(STDERR_FILENO, sigbuf, slen); backtrace_symbols_fd(bt, n, STDERR_FILENO); + fsync(STDERR_FILENO); _exit(1); }