C++ app segfaults in libstdc++
Charles Wilson
cygwin@cwilson.fastmail.fm
Thu Jun 17 15:23:00 GMT 2010
On Thu, 17 Jun 2010 10:05 -0400, "Charles Wilson" wrote:
> On 6/17/2010 9:50 AM, Dave Korn wrote:
> > To summarize the summary of the summary: C++ is complicated.
>
> No kidding. What if the datatypes used in the interface between the
> module and main -- including ALL exception classes -- were defined in a
> second DLL, on which both module and main depend? Then module could be
> dynamically loaded (and unloaded), without any 'static' entanglments
> with main.
>
> But...I'm not sure if that would fix the problem you described in your
> first reply, since module would have created the modexc instance, even
> if the class is defined in another DLL. I'll give it a try later on.
As expected, this didn't work. But...the imports and exports are NOT
what I expected, so I'm a little confused:
shared-data-types.dll exports:
[Ordinal/Name Pointer] Table
[ 0] modexc::~modexc()
[ 1] modexc::~modexc()
[ 2] modexc::what() const
[ 3] typeinfo for modexc
[ 4] typeinfo name for modexc
[ 5] vtable for modexc
[ 6] shared_data_types_dummy
module.dll imports from shared-data-types:
DLL Name: shared-data-types.dll
vma: Hint/Ord Member-Name Bound-To
8228 5 vtable for modexc
module.dll exports:
[Ordinal/Name Pointer] Table
[ 0] modbar()
[ 1] modexc::modexc(modexc const&)
[ 2] modexc::modexc(std::basic_string<char,
std::char_traits<char>, std::allocator<char> >)
[ 3] modexc::~modexc()
[ 4] modexc::what() const
[ 5] std::exception::exception(std::exception const&)
[ 6] std::exception::exception()
[ 7] typeinfo for modexc
[ 8] typeinfo name for modexc
[ 9] modfoo
Err, what? (a) why is this DLL exporting modexc stuff, when it is marked
dllimport in this context? (b) why is this DLL exporting std::exception
stuff?
And then, main imports from shared-data-types.dll (it has no imports
from module.dll, obviously):
DLL Name: shared-data-types.dll
vma: Hint/Ord Member-Name Bound-To
7228 5 vtable for modexc
If I put a dummy instantiation of modexc in shared-data-types.cpp, then
the exports from that DLL are slightly more extensive, but this has no
effect on the imports of the other dll/exe.
binutils 2.20.51-2
cygwin 1.7.5-1
gcc4-g++ 4.3.4-3
I'm wondering if some of the 4.4.x and 4.5.x changes having to do with
how entities are labeled fix these issues; e.g. I'm looking at a
compiler "bug" in addition to the other problems you've mentioned?
--
Chuck
-------------- next part --------------
A non-text attachment was scrubbed...
Name: libtool-segfault-stc2.tar.bz2
Type: application/octet-stream
Size: 1437 bytes
Desc: not available
URL: <http://cygwin.com/pipermail/cygwin/attachments/20100617/8c255d4c/attachment.obj>
-------------- next part --------------
--
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
More information about the Cygwin
mailing list