Re: [HACKERS] Win32 WEXITSTATUS too - Mailing list pgsql-patches
From | Bruce Momjian |
---|---|
Subject | Re: [HACKERS] Win32 WEXITSTATUS too |
Date | |
Msg-id | 200701252210.l0PMAEn28223@momjian.us Whole thread Raw |
In response to | Re: [HACKERS] Win32 WEXITSTATUS too ("Chuck McDevitt" <cmcdevitt@greenplum.com>) |
List | pgsql-patches |
Chuck McDevitt wrote: > Win32 exception codes start with a two-bit severity indication. > 00 means "success", so nothing is wrong. > 01 is an "informational" messages. > 10 is a "warning" message. > 11 is an "error". > > That's why the common exception codes you see start with hex C0, as they > are "errors". > > The rest of the top 16 bits are the "facility" that caused the error. > Often not filled in. > > To Convert an NT exception code (ntstatus) to a Win32 error code, you > call this routine: > > ULONG RtlNtStatusToDosError( > NTSTATUS Status > ); > > > Then you can pass it to FormatMessage and it will work. I looked on MinGW and it seems it doesn't support RtlNtStatusToDosError(), so I just added a comment that some day we might want to use it: * Some day we might want to print descriptions for the most common * exceptions, rather than printing an include file name. We could use * RtlNtStatusToDosError() and pass to FormatMessage(), which can print * the text of error values, but MinGW does not support * RtlNtStatusToDosError(). --------------------------------------------------------------------------- > > > -----Original Message----- > From: pgsql-patches-owner@postgresql.org > [mailto:pgsql-patches-owner@postgresql.org] On Behalf Of Bruce Momjian > Sent: Tuesday, January 23, 2007 7:35 AM > To: Tom Lane > Cc: Magnus Hagander; Takayuki Tsunakawa; PostgreSQL-patches; Alvaro > Herrera; ITAGAKI Takahiro > Subject: Re: [pgsql-patches] [HACKERS] Win32 WEXITSTATUS too > > Tom Lane wrote: > > Bruce Momjian <bruce@momjian.us> writes: > > > Magnus Hagander wrote: > > >> Now, if we're only caring about exit() from *postgresqls own > processes*, > > >> that might hold true. In which case I withdraw that objection as > long as > > >> the comment i updated to reflect this ;-) But if we're talking > about > > >> exit() in general of any process, then it's simply wrong. > > > > > Right, that code is only used by the backend and tools. > > > > We can reasonably assume that no Postgres code will exit() with a > value > > bigger than 255, because to do so would be unportable. > > > > I'm more concerned about the other direction: can we be sure that a > > status value less than 255 is from exit() rather than something that > > should be called an exception? > > > > ---------------------------(end of broadcast)--------------------------- > TIP 1: if posting/reading through Usenet, please send an appropriate > subscribe-nomail command to majordomo@postgresql.org so that your > message can get through to the mailing list cleanly -- Bruce Momjian bruce@momjian.us EnterpriseDB http://www.enterprisedb.com + If your life is a hard drive, Christ can be your backup. +
pgsql-patches by date: