相关疑难解决方法(0)

如何在GDB中打印C++向量的元素?

我想检查std::vectorGDB中的内容,我该怎么做?让我们说这是std::vector<int>为了简单起见.

c++ debugging gdb stl vector

204
推荐指数
4
解决办法
11万
查看次数

gdb无法找到operator []

double var1, var2;
std::vector<double *> x;

var1 = 1;
var2 = 2;

x.push_back(&var1);
x.push_back(&var2);
Run Code Online (Sandbox Code Playgroud)

当我在gdb中调试此代码并尝试print x [0]或*x [0]时,我得到:找不到operator [].现在如果我在push_back之后包含这一行:

x[0] = &var1;
Run Code Online (Sandbox Code Playgroud)

我可以访问gdb中的任何特定元素.其他成员也会发生同样的事情,例如front(),at()等.我的理解是编译器/链接器只包含源代码中存在的成员函数,而那些是我可以在gdb中使用的成员函数.有没有办法包含std :: vector的每个成员函数,所以我可以在gdb中访问它们?

c++ gdb vector

20
推荐指数
2
解决办法
9153
查看次数

标签 统计

c++ ×2

gdb ×2

vector ×2

debugging ×1

stl ×1