0

我正在尝试调试一些创建错误字典并返回它的代码(而不是在发生某些事情时立即返回错误)。

为此,跟踪以下内容会很有用:

  • 当访问字典中的特定键时
  • 访问此变量时。

有没有办法在发生这种情况时启动 pdb。

在其他语言中,有在访问内存时启动调试的概念,这并不真正适用于 python。

huntrace之前已经找到并用于跟踪。我认为这可以适应启动 pdb (并且有一些用于监视变量的代码)。

我破解了以下内容:

class PdbDict(Mapping):
    def __init__(self, d):
        self.d = d

    def __getitem__(self, k):
        if k == "_id":
            import pdb

            pdb.set_trace()  # XXX
        return self.d[k]

    def __setitem__(self, k, v):
        import pdb

        pdb.set_trace()  # XXX
        self.d[k] = v

    def keys(self):
        return self.d.keys()

    def values(self):
        return self.d.values()

    def items(self):
        import pdb

        pdb.set_trace()  # XXX
        return self.d.items()

    def __len__(self):
        return len(self.d)

    def __iter__(self):
        return iter(self.d.keys())
4

0 回答 0