From: Brian Dessent <brian@dessent.net>
To: cygwin-patches@cygwin.com
Cc: gdb-patches@sourceware.org
Subject: Re: [patch] fix spurious SIGSEGV faults under Cygwin
Date: Thu, 02 Feb 2006 17:21:00 -0000 [thread overview]
Message-ID: <43E23F92.37AF1CEA@dessent.net> (raw)
In-Reply-To: <20060202170558.GD22365@trixie.casa.cgf.cx>
Christopher Faylor wrote:
> Thanks for the patch but I've been working on this too and, so far, I think
> it is possible to have a very minimal way of dealing with this problem. I
> haven't had time to delve into it too deeply but I have been exploring this
> problem on and off for a couple of weeks. If the situation at work calms
> down a little I may be able to finish up what I've been working on.
>
> OTOH, if what I have is really not working then I'll take a look at what
> you've done.
Okay, no rush. FWIW after noticing that strace was broken I tested a
version that used
#define _CYGWIN_SIGNAL_STRING "cYgSiGw00f"
+#define _CYGWIN_FAULT_IGNORE_STRING "cYg0 faultig"
+#define _CYGWIN_FAULT_NOIGNORE_STRING "cYg0 nofaultig"
...which seems to fix the problem since the strtold() just picks up 0
after 'cYg' and strace ignores the rest.
The main problem I see with this approach is the extra call to
IsDebuggerPresent() every time a 'myfault' is created/destroyed, which
potentially could be a lot. I'm presuming this is a relatively cheap
call so it wasn't something I worried too much about. But then I didn't
actually try to measure it.
If it turns out that it's expensive, I was thinking that the inferior
could maintain this information in some variable, and just communicate
its location to gdb once at startup, then gdb could simply read that
variable in the process' memory before deciding whether to handle the
fault. Or it could try to look at the SEH chain and see if a handler
residing in cygwin1.dll is setup to handle the fault, and if so just
silently pass it along. But that seemed really complicated when there
already exists this mechanism for the process to communicate with the
debugger.
Brian
next prev parent reply other threads:[~2006-02-02 17:21 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-02-02 12:26 Brian Dessent
2006-02-02 16:00 ` Brian Dessent
2006-02-02 17:06 ` Christopher Faylor
2006-02-02 17:21 ` Brian Dessent [this message]
2006-02-02 17:30 ` Dave Korn
2006-02-02 17:38 ` Daniel Jacobowitz
2006-02-02 17:43 ` Dave Korn
2006-02-02 17:46 ` 'Daniel Jacobowitz'
2006-02-02 17:52 ` Dave Korn
2006-02-02 17:56 ` 'Daniel Jacobowitz'
2006-02-02 17:42 ` Brian Dessent
2006-02-02 17:47 ` Dave Korn
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=43E23F92.37AF1CEA@dessent.net \
--to=brian@dessent.net \
--cc=cygwin-patches@cygwin.com \
--cc=gdb-patches@sourceware.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox