如何更新c ++矢量的打印机,以便它可以打印每个元素

时间:2016-05-31 19:22:04

标签: c++ gdb

我开始研究gdb python扩展,需要一些帮助。

以下是一个例子:

#include <vector>

int main() {
  using namespace std;

  vector<int> v;
  v.push_back(1);
  v.push_back(2);
  v.push_back(3);

  return 0;
}

以下是我在gdb中使用的命令:

(gdb) set print pretty
(gdb) n
7         v.push_back(1);
(gdb)
8         v.push_back(2);
(gdb)
9         v.push_back(3);
(gdb)
11        return 0;
(gdb) p v
$1 = std::vector of length 3, capacity 4 = {1, 2, 3}

你可以看到矢量打印机打印出一些简单的信息。我想知道如何破解矢量打印机,以便打印出所有元素?

此外,我的最终目标是打印出我的数据类型的向量。我不知道如何打印单个数据,正在查看,但如果您可以指出我为单个数据和矢量连接打印机的方向,我会很感激。

谢谢!

[更新] 我当然一直在努力工作,价值被打印出来,我没有看到它,感叹。遗憾。

我的下一步是为我的数据类型编写一台打印机,所以一旦我注册了该打印机,矢量打印机就可以自动使用它来打印单个数据,是吗?

1 个答案:

答案 0 :(得分:0)

  

我的下一步是为我的数据类型编写打印机,所以一旦我有了   打印机注册后,矢量打印机可以自动使用它   打印个人数据,是吗?

是的,没错。一个写得很好的容器漂亮打印机(如果我自己也这样说,libstdc ++打印机肯定有资格)将返回一个可迭代对象,它产生代表所包含数据的gdb.Value个实例。这使得gdb也可以为这些值应用漂亮的打印机。