我正在尝试调试一些创建错误字典并返回它的代码(而不是在发生某些事情时立即返回错误)。
为此,跟踪以下内容会很有用:
- 当访问字典中的特定键时
- 访问此变量时。
有没有办法在发生这种情况时启动 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())