我开始研究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}
你可以看到矢量打印机打印出一些简单的信息。我想知道如何破解矢量打印机,以便打印出所有元素?
此外,我的最终目标是打印出我的数据类型的向量。我不知道如何打印单个数据,正在查看,但如果您可以指出我为单个数据和矢量连接打印机的方向,我会很感激。
谢谢!
[更新] 我当然一直在努力工作,价值被打印出来,我没有看到它,感叹。遗憾。
我的下一步是为我的数据类型编写一台打印机,所以一旦我注册了该打印机,矢量打印机就可以自动使用它来打印单个数据,是吗?
答案 0 :(得分:0)
我的下一步是为我的数据类型编写打印机,所以一旦我有了 打印机注册后,矢量打印机可以自动使用它 打印个人数据,是吗?
是的,没错。一个写得很好的容器漂亮打印机(如果我自己也这样说,libstdc ++打印机肯定有资格)将返回一个可迭代对象,它产生代表所包含数据的gdb.Value
个实例。这使得gdb也可以为这些值应用漂亮的打印机。