Modern C++ has a lot of templated and wrapped elements that become a hassle during debugging because gdb is a generic debugger, without specific c++ features.
There's no way to easily list the elements in an STL container. When using a boost::shared_ptr shared pointer there's often no way to de-reference the referent to see what's going on.
Is there a set of gdb macros, or even a more advanced version of gdb that can make this stuff easier to see?