This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: [RFA] Add handling of Ctrl-Break for win32 native target.
At 17:52 04/02/2002 , vous avez écrit:
>On Mon, Feb 04, 2002 at 04:04:47PM +0100, Pierre Muller wrote:
> >2002-02-04 Pierre Muller <muller@ics.u-strasbg.fr>
> > win32-nat.c (handle_exception): Handle Ctrl-Break exception.
> >
>
>Looks good. Please check it in.
I tried, but I can't get the lock for /cvs/src/src/gdb
cvs server: [09:25:31] waiting for muller's lock in /cvs/src/src/gdb
cvs server: [09:26:01] waiting for muller's lock in /cvs/src/src/gdb
I am not sure that I understand this message correctly:
I am waiting until I can get a lock for muller (i.e. myself)
or is there some zombie processs somewhere on the cvs server?
>I'm looking forward to the patch to handle the pass state.
The main problem is that this will only partially work because of a known bug
in the win32 API:
Extracted from
http://www.microsoft.com/msj/defaultframe.asp?page=/msj/0898/bugslayer0898.htm&nav=/msj/0898/newnav.htm
There are a couple of issues to remember when using SetUnhandledExceptionFilter.
The first is that any exception filter that you set cannot be debugged. This is a known bug.
Knowledge Base article Q173652 says that under a debugger the process wide filter is not called.
This can be a bit of a pain, but in a C++ program you can just use your function in a regular SEH exception
filter to debug it. If you look at the CH_TEST.CPP test program, which is part of this month's source code
(Aug98Bugslayer.exe ), this is exactly what I did to debug it.
An alternative is to use a kernel debugger like WinDBG to get around this limitation.
But I don't really know if Cygwin library uses SetUnhandledExceptionFilter
(I suspect it does as my patch does not work as intended...).
I will send a [RFC] when all seems ready, even if it does not fully work...
Pierre Muller
Institut Charles Sadron
6,rue Boussingault
F 67083 STRASBOURG CEDEX (France)
mailto:muller@ics.u-strasbg.fr
Phone : (33)-3-88-41-40-07 Fax : (33)-3-88-41-40-99