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

From Bruce Momjian
Subject Re: [HACKERS] Win32 WEXITSTATUS too
Date
Msg-id 200701231532.l0NFWw906526@momjian.us
Whole thread Raw
In response to Re: [HACKERS] Win32 WEXITSTATUS too  ("Takayuki Tsunakawa" <tsunakawa.takay@jp.fujitsu.com>)
Responses Re: [HACKERS] Win32 WEXITSTATUS too  (Magnus Hagander <magnus@hagander.net>)
List pgsql-patches
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.

And it seems Wine also has it in both places.  The nice thing about
ntstatus.h is that it _only_ contains exception values, rather than
winnt.h, which has lots of other stuff too.

> 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 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

--
  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:

Previous
From: Tom Lane
Date:
Subject: Re: [HACKERS] Win32 WEXITSTATUS too
Next
From: Magnus Hagander
Date:
Subject: Re: [HACKERS] Win32 WEXITSTATUS too