Tom Lane <[EMAIL PROTECTED]> wrote: > server process exited with exit code -1073741819 > from what I suspect is really the equivalent of a SIGSEGV trap, > ie, attempted access to already-deallocated memory. My calculator > says the above is equivalent to hex C0000005, and I say that this > makes it pretty clear that *some* parts of Windows put flag bits into > the process exit code. Anyone want to run down what we should really > be using instead of the above macros?
C0000005 equals to EXCEPTION_ACCESS_VIOLATION. The value returned by GetExceptionCode() seems to be the exit code in unhandeled exception cases. AFAICS, all EXCEPTION_xxx (or STATUS_xxx) values are defined as 0xCxxxxxxx. I think we can use the second high bit to distinguish exit by exception from normal exits. #define WEXITSTATUS(w) ((int) ((w) & 0x40000000)) #define WIFEXITED(w) ((w) & 0x40000000) == 0) #define WIFSIGNALED(w) ((w) & 0x40000000) != 0) #define WTERMSIG(w) (w) // or ((w) & 0x3FFFFFFF) However, it comes from reverse engineering of the headers of Windows. I cannot find any official documentation. Regards, --- ITAGAKI Takahiro NTT Open Source Software Center ---------------------------(end of broadcast)--------------------------- TIP 3: Have you checked our extensive FAQ? http://www.postgresql.org/docs/faq