Dear all,
I want to debug a random segfault that I'm having inside a third party
library and I want to get the a compilation with the highest number of
runtime debug checks possible. The reason is that valgrind has failed to
diagnose my problem, the crash is random and the backtrace not very
helpful, so I'm a bit lost.
I've already compiled the other C++ libraries with _GLIBCXX_DEBUG to add
the STL debug code, but I didn't manage to do it with Equalizer. After
some naïve tries I've decided to ask for some advice.
I'm using the 0.6 stable release and g++ 4.2.3 in ubuntu. The problem is
related to the hash_map extension. I attach the compiler command line
and output.
Does anybody have any suggestion about how to solve the problem or
workaround it? I don't mind lacking debug support for the hash_table
because my bug is not there, but I need a consistent build.
Of course, this only happens with _GLIBCXX_DEBUG, and that makes me
think there's something awkward inside stdlibc++ but I'd prefer not
messing there.
Thanks in advance,
Juan
g++ -I.././build/Linux/include -D_GLIBCXX_DEBUG -g -m64 -fPIC -DLinux -DGLX
-DEQ_CHECK_THREADSAFETY -DGLEW_MX -DEQ_ASYNC_TRANSMIT -Wall -Wnon-virtual-dtor
-Wsign-promo -Wshadow -Wno-unknown-pragmas -Wno-unused-parameter
-Wno-write-strings -m64 -fPIC -I/usr/X11R6/include -DEQUALIZER_EXPORTS
-DSUBDIR=\"./lib\" -c net/barrier.cpp -o .././obj/./lib/net/barrier.Linux.o
In file included from .././build/Linux/include/eq/net/object.h:9,
from net/barrier.h:8,
from net/barrier.cpp:5:
/usr/include/c++/4.2/ext/new_allocator.h: In instantiation of
â__gnu_cxx::new_allocator<const eq::net::NodeID>â:
/usr/include/c++/4.2/bits/allocator.h:86: instantiated from
âstd::allocator<const eq::net::NodeID>â
/usr/include/c++/4.2/ext/hashtable.h:282: instantiated from
â__gnu_cxx::hashtable<std::pair<const eq::net::NodeID,
eq::base::RefPtr<eq::net::Node> >, const eq::net::NodeID, __gnu_cxx::hash<const
eq::net::NodeID>, std::_Select1st<std::pair<const eq::net::NodeID,
eq::base::RefPtr<eq::net::Node> > >, std::equal_to<const eq::net::NodeID>,
std::allocator<const eq::net::NodeID> >â
/usr/include/c++/4.2/ext/hash_map:89: instantiated from
â__gnu_cxx::__norm::hash_map<const eq::net::NodeID,
eq::base::RefPtr<eq::net::Node>, __gnu_cxx::hash<const eq::net::NodeID>,
std::equal_to<const eq::net::NodeID>, std::allocator<const eq::net::NodeID> >â
/usr/include/c++/4.2/debug/hash_map.h:53: instantiated from
â__gnu_cxx::__debug::hash_map<const eq::net::NodeID,
eq::base::RefPtr<eq::net::Node>, __gnu_cxx::hash<const eq::net::NodeID>,
std::equal_to<const eq::net::NodeID>, std::allocator<const eq::net::NodeID> >â
.././build/Linux/include/eq/net/nodeID.h:167: instantiated from
âeq::net::NodeIDHash<eq::base::RefPtr<eq::net::Node> >â
.././build/Linux/include/eq/net/node.h:523: instantiated from here
/usr/include/c++/4.2/ext/new_allocator.h:81: error: no se puede sobrecargar
âconst _Tp* __gnu_cxx::new_allocator<_Tp>::address(const _Tp&) const [with
_Tp = const eq::net::NodeID]â
/usr/include/c++/4.2/ext/new_allocator.h:78: error: con â_Tp*
__gnu_cxx::new_allocator<_Tp>::address(_Tp&) const [with _Tp = const
eq::net::NodeID]â
_______________________________________________
eq-dev mailing list
[email protected]
http://www.equalizergraphics.com/cgi-bin/mailman/listinfo/eq-dev
http://www.equalizergraphics.com