This is the mail archive of the
mailing list for the Cygwin project.
Re: dlclose not calling destructors of static variables.
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:
Btw, it isn't entirely clear that GetModuleInformation will work with
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.
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
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,
wrong for purpose and GetModuleInformation keeps giving me a invalid
Iterating over the dll list and using the per_module information seems
like my best bet,
and hopefully should be quite simple I think.
Problem reports: http://cygwin.com/problems.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple