When I am trying to set the break point on a constructor of a templated class (two vector type template parameters), and I use TAB TAB to get the completion list in the *Completions* buffer (under emacs) and then mouse-2 or RETURN to select the desired constructor, I get this pasted into my gdb session: (gdb) break 'TxDataModelFunctor<vector<double, allocator<double> >, vector<double, allocator<double> > >::TxDataModelFunctor(vector<double, allocator<double> > const &, vector<double, allocator<double> > const &, TxParametricModel<vector<double, allocator<double> >, vector<double, allocator<double> > > *) After adding the closing single quote, I get the error: malformed template specification in command If I do a simmple query replace in a temporary buffer to substitute: from: vector<double, allocator<double> > to: vec_t the result looks ok to me: break 'TxDataModelFunctor<vec_t, vec_t >::TxDataModelFunctor(vec_t const &, vec_t const &, TxParametricModel<vec_t, vec_t > *) I assume this is a bug because I am using the syntax provided to me by GDB and the program compiles. Thanks, John Hunter version info: gdb 5.0 under emacs 20.5.1. The program I am debugging was compiled with 'g++ --ggdb' using gcc-2.95.2. Here is the header file for the TxDataModelFunctor. The template parameters RetVecType and ArgVecType were both instantiated with vector<double>. //---------------------------------------------------------------------------- // // TxDataModelFunctor.h // //---------------------------------------------------------------------------- #ifndef TX_DATA_MODEL_FUNCTOR #define TX_DATA_MODEL_FUNCTOR #include <TxFunctor.h> #include <TxMatrix.h> #include <TxVectorFunctor.h> #include "TxParametricModel.h" template <class RetVecType, class ArgVecType> class TxDataModelFunctor : public TxVectorFunctor<RetVecType, ArgVecType>{ /// Value type of the vector argument. typedef typename TxUnaryContainerTraits<ArgVecType>::ValueType ArgType; /// Value type of the vector valued function. typedef typename TxUnaryContainerTraits<RetVecType>::ValueType RetType; /// Type of the derivative. typedef typename TxBinaryContainerTraits<ArgVecType, RetType>::PromoteType PromoteType; /// A vector of derivative types. typedef typename TxBinaryContainerTraits<ArgVecType, RetType>::PromoteVectorType PromoteVectorType; //the functions which calculate the function and gradient values and //return the results in the last arg by reference typedef TxParametricModel<RetVecType, ArgVecType>* PtrModel; public: ///Constructor passing the dependent variables, the independent //variables, the parametric model, the dimension of the param space //and the number of data points: TxDataModelFunctor(const RetVecType& ydata, const ArgVecType& xdata, PtrModel pm); /// Virtual destructor does nothing virtual ~TxDataModelFunctor() { }; ( ... snip ... ) }; #if defined(__DECCXX) && !defined(TX_VECTOR_PTR_FUNCTOR_CPP) #pragma do_not_instantiate TxDataModelFunctor<std::vector<double>, std::vector<double> > #pragma do_not_instantiate TxDataModelFunctor<std::vector<float>, std::vector<double> > #endif #endif // TX_VECTOR_PTR_FUNCTOR_H