delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2006/03/16/10:48:03

X-Spam-Check-By: sourceware.org
Message-ID: <441988A6.7010609@huarp.harvard.edu>
Date: Thu, 16 Mar 2006 10:47:50 -0500
From: Norton Allen <allen AT huarp DOT harvard DOT edu>
User-Agent: Mozilla Thunderbird 1.0.6 (Windows/20050716)
MIME-Version: 1.0
To: cygwin list <cygwin AT cygwin DOT com>
CC: gzabl AT yahoo DOT com
Subject: RE: Bug in dlopen() (or following) code in Cygwin1.dll v 1.5.19-4
Received-SPF: pass (ent.arp.harvard.edu: 10.0.0.188 is authenticated by a trusted mechanism)
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com

I just spent a full day tracking down something that is
either very similar or I'm getting thrown off by the
same red herring. [The text here was pulled from a
post on the cygwin-patches list, but the discussion was
redirected here]

> On Thu, Mar 02, 2006 at 10:11:39AM -0800, Gary Zablackis wrote:
>>Since installing Cygwin1.dll v 1.5.19-4, I have a problem with the
>>computer algebra system SAGE dying at startup with no error messages
>>(i.e.  I get returned to the bash prompt with no messages of any sort).
>>I tracked the problem down to verifyable_object_isvalid() in
>>winsup/thread.cc.  The added the check below corrects this problem:
>>
>>CHANGELOG:
>>2006-03-02 Gary Zablackis gzabl AT yahoo DOT com
>> * thread.cc (verifyable_object_isvalid): check for
>>NULL object or reference
> 
> The "efault.faulted()" two lines above your change is supposed to catch
> NULL dereferences.

Whoa! This looks like voodoo action-at-a-distance. efault.faulted()
doesn't even get passed the pointer to know whether or not it's
NULL. I'm guessing that it must assume that this function
(verifyable_object_isvalid) will *only* be called with a
particular class of pointers. Is any of this documented anywhere?

Although efault.faulted() is supposed to catch the NULL dereferences,
is there a big downside to double-checking afterwards (particularly
if there are cases where it doesn't catch them?)

>  I suspect that you were probably misled by the fact
> that gdb might show a SEGV in this function but that is to be expected
> (see lots of discussion in the cygwin mailing list about this) and there
> are patches pending for gdb which will work around this behavior.

[I did try to find this discussion, but failed. Any hints on what
the subject line was?] FWIW, I also have symptoms of gdb dropping
into the background on certain 'next' commands. Issuing 'fg' gets
me back to where I was going.

Norton Allen


--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019