我已经在Python中为我的自定义类型实现了一个GDB漂亮的打印机。它会按照我的预期打印值,但当 set print pretty 生效时,它不会“正确”缩进子结构。
E.g。给定
typedef Type struct {
int child1;
struct {
int grandchild1;
} grand;
}
GDB本身,没有我漂亮的打印机,将其显示为
$4 = {
child1 = 42,
grand = {
grandchild1 = 1
}
}
然而,我的漂亮打印机显示为
$5 = {
child1 = 42,
grand = {
grandchild1 = 1
}
}
忘记缩进子结构'grand'的数据。
我的漂亮打印机基本上是这样做的:
def __init__(self, val):
self.val = val
def to_string(self):
return None
def children(self):
for field in self.val.type.fields():
yeild field.name, str(self.val[field.name])
如下所述:Make debugging easier with custom pretty-printers。
这有什么区别?
答案 0 :(得分:0)
根据你所说的,这听起来像一个普通的老虫。不过,一个完整的复制器会很好。