在GDB中使用漂亮的打印机遍历链表



我有一个链表漂亮的打印机,它从命令提示符输入。例如,打印xyz

我的代码如下:

class Randomcalss:
    def __init__(self, val):
        self.val = int(val)
    def to_string(self):
        return "printing linked list:"
    def children(self):
        for field in self.val.type.fields():
            key = field.name
            val = self.val[key]
            yield key,val.dereference()

它按预期工作,并打印:

 printing linked list:= {head = {next = 0x625590, prev = 0x623c70}}

但是如果我想遍历链表,我该怎么做呢?因为每次我试着访问head['next']它说head是一个字符串字符串的下标必须是整数

我能不能做一些像self。Val[键]也可以访问头部的下一个节点吗?

您可以执行value .dereference()['next'],这将为您提供列表下一个成员的地址。您可以强制转换获得的值(如果需要)并进一步遍历。

相关内容

  • 没有找到相关文章

最新更新