在我的代码中,我有一个STL向量,它保存着指向对象的指针。 我这样编码的原因是因为我必须从不同的地方操作对象本身。GDB&C++:打印对象指针的向量
std::vector<Object*> objects;
for (int i = 0; i < 10; i++) {
Object* o = new Object(i);
objects.push_back(o);
}
此代码假定Object是一个将整数作为构造函数参数的对象。假设在for循环结束后我断点与我的GDB断开了,我必须做些什么才能轻松查看我的向量中的对象?
当我做“p对象”时,它只列出了完全期望的指针地址,但我希望看到每个对象所保存的整数变量。我尝试过“p objects [0]”,但是这返回“找不到运算符[]”。
有没有人遇到过这个问题?或知道如何解决这个问题? 我的目标是当这些对象的指针存储在STL向量中时,能够从GDB中查看实际保存的对象。
我建议有一个向量智能指针。你可以在'gdb'调试器中尝试'p * o'或'p objects'。 – 2014-10-11 06:16:49
我需要观察指向不同地方的对象的指针的内容,做“p对象”会向我显示所有的地址,但它们不会告诉我每个对象中的内容,以及“p objects [0 ]“也不起作用,说”无法找到运算符[]“ – user3064869 2014-10-11 06:19:47
最近版本的'gdb'和[GCC](http://gcc.gnu.org/)即'g ++'可能有帮助 – 2014-10-11 06:21:14