X-Recipient: archive-cygwin AT delorie DOT com X-SWARE-Spam-Status: No, hits=-2.6 required=5.0 tests=BAYES_00,SPF_PASS X-Spam-Check-By: sourceware.org Message-ID: <4B673D5F.4050104@gmail.com> Date: Mon, 01 Feb 2010 20:45:19 +0000 From: Andrew User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.8pre) Gecko/20100131 Shredder/3.0.2pre MIME-Version: 1.0 To: cygwin AT cygwin DOT com Subject: Re: dlclose not calling destructors of static variables. References: <4B61732F DOT 4030804 AT gmail DOT com> <4B62DDE6 DOT 5070106 AT gmail DOT com> <4B62F118 DOT 8010305 AT gmail DOT com> <20100129184514 DOT GA9550 AT ednor DOT casa DOT cgf DOT cx> <4B66BF2F DOT 4060802 AT gmail DOT com> <20100201162603 DOT GB25374 AT ednor DOT casa DOT cgf DOT cx> <4B6710CE DOT 40300 AT gmail DOT com> <20100201174611 DOT GA26080 AT ednor DOT casa DOT cgf DOT cx> <20100201175123 DOT GB26080 AT ednor DOT casa DOT cgf DOT cx> <4B672B74 DOT 4090808 AT gmail DOT com> In-Reply-To: <4B672B74.4090808@gmail.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-IsSubscribed: yes Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com On 01/02/10 19:28, Dave Korn wrote: > On 01/02/2010 17:51, Christopher Faylor wrote: > >> On Mon, Feb 01, 2010 at 12:46:11PM -0500, Christopher Faylor wrote: >> > >>>> Cribbing from the gdb source code, it looks like they use BaseAddrees + >>>> 0x1000 for the start point and then call GetModuleInformation to workout >>>> the size of the module. >>>> >>> Yeah, duh. "they" == "me". I should have checked gdb for this since I've >>> already done this research once before. >>> >>> If you do find that this works, then I think this may fall into the >>> realm of a non-trivial patch so it may be best to just tell me what >>> you've found rather than provide a patch - unless you want to go through >>> the approval process with Red Hat. >>> >>> Or, you can just wait for me to adapt what's in gdb to cygwin. I can do >>> tonight when I get back to a windows system. >>> >> Btw, it isn't entirely clear that GetModuleInformation will work with >> older versions of Windows NT so this may not be a complete solution. We >> do use GetModuleInformation in Cygwin but it is not in anything as >> crucial as this. >> > Can't we use the info in the dll struct? It has pointers to the data and > bss section, we could take the max out of them and the data in the M_B_I > struct. (Tell you what, I'll try it.) > > That would be the ideal solution. I'm not looking to submit a patch to fix this, I'll leave that up to the professionals who have a better idea about the whole picture. It's just I've hit a brick wall with my code with this bug so I'm looking for some work arounds for myself. I'm going to poke around the "remove_dll_atexit" function again tomorrow. gdb used bfd_* functions from binutils so that's out for me, VirtualQuery seems wrong for purpose and GetModuleInformation keeps giving me a invalid handle error. Iterating over the dll list and using the per_module information seems like my best bet, and hopefully should be quite simple I think. Andy. -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple