过去几周我一直在使用 GDB 的“调用”功能,它看起来非常有用,如下所示的代码
void VectorPrint(const std::vector<int>& v)
{
std::cout << "start printing vector\n";
for (int i = 0; i < v.size(); ++i) {
std::cout << v[i];
if (i != v.size() - 1)
std::cout << "\n";
}
//std::cout << "\n printing end \n";
}
(gdb) call VectorPrint(any1DVectorhere) 这将执行上述函数并在控制台上打印矢量内容。
我面临的问题是,如果模板化,我无法调用相同的函数,如下所示。GDB 无法识别模板化函数
template <typename Traits>
template <typename myVec>
void MyClass<Traits>::VectorPrint(const std::vector<myVec>& v)
{
std::cout << "start printing vector\n";
for (int i = 0; i < v.size(); ++i) {
std::cout << v[i];
if (i != v.size() - 1)
std::cout << "\n";
}
//std::cout << "\n printing end \n";
}
任何人都可以建议如何在这个用例中使用 GDB的调用功能吗?非常感谢任何帮助。
非常感谢提前!