Re: [HACKERS] Win32 WEXITSTATUS too - Mailing list pgsql-patches

From Magnus Hagander
Subject Re: [HACKERS] Win32 WEXITSTATUS too
Date
Msg-id 20070123154033.GB16309@svr2.hagander.net
Whole thread Raw
In response to Re: [HACKERS] Win32 WEXITSTATUS too  (Bruce Momjian <bruce@momjian.us>)
Responses Re: [HACKERS] Win32 WEXITSTATUS too  (Bruce Momjian <bruce@momjian.us>)
List pgsql-patches
On Tue, Jan 23, 2007 at 10:32:58AM -0500, Bruce Momjian wrote:
> Takayuki Tsunakawa wrote:
> > From: "Magnus Hagander" <magnus@hagander.net>
> > > Are you entirely sure that ntstatus.h is where to look? Because per
> > > whatever docs I've found, that contains "device driver errors" and
> > *not*
> > > exception codes.
> >
> > Yes, what you are pointing out is correct.  winbase.h and winnt.h
> > should be consulted instead of ntstatus.h.  See the the section
> > "Return Value" in the following page:
> >
> > http://msdn2.microsoft.com/ru-ru/library/ms679356.aspx
>
> Well, it seems to be in two place.  I see at:
>
>     http://www.microsoft.com/msj/0197/exception/exception.aspx
>
>     The ExceptionCode parameter is the number that the operating system
>     assigned to the exception. You can see a list of various exception codes
>     in WINNT.H by searching for #defines that start with "STATUS_". For
>     example, the code for the all-too-familiar STATUS_ACCESS_VIOLATION is
>     0xC0000005. A more complete set of exception codes can be found in
>     NTSTATUS.H from the Windows NT DDK.

Actually, that's the first reference so far to say that a kernel level
error code is the same as a userspace exception code. If it is, then
it's safe to use as such. MSJ is generall a very good reference for
these things, even though it's nto an actual documentation.


> > Furthermore, the message is meaningless for users because they can do
> > nothing with the information.  So, I think the message should say
> > something like
> >
> > child process was terminated by exception %X
> > This seems to be a bug of PostgreSQL.
> > Please report this message with the details of the phynomenon to
> > PostgreSQL developers.
>
> I am hoping some of the hex values will have descriptions that will help
> users solve problems in their operating system configuration, rather
> than asking us.  If they are in a crisis, asking the community  might
> not be quick enough.
>
> FYI, here is a patch that recommends ntstatus.h:
>
>     http://blog.opsan.com/archive/2005/05/05/447.aspx
>     http://www.osronline.com/article.cfm?article=207

This second one is referring to DDK again. The first one doesn't refer
to what it's looking up at all :-(


> This says you can get text for exceptions, but it didn't work for me,
> but I didn't try loading ntdll.dll:
>
>     http://support.microsoft.com/kb/259693

Loading ntdll.dll lets you see Kernel mode API errors. If these are
indeed the same as userspace exceptions, then you can load ntdll to get
those. If you don't load ntdll, you can only look at "normal errors".

//Magnus

pgsql-patches by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: [HACKERS] Win32 WEXITSTATUS too
Next
From: Bruce Momjian
Date:
Subject: Re: [HACKERS] Win32 WEXITSTATUS too