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

Reply via email to