有人知道为什么在某些地方,gdb中的Python代码不能正确处理异常吗?或者,为了澄清,可能是异常消息
去了*gud缓冲区以外的地方。gdb未返回控制
如预期的那样。
(我在Emacs(24.5.1)gud模式下使用GNU gdb(gdb)7.11.50.20160212-git)
例如:
class SomeEvent():
def __init__(self, ...):
... do something ...
def __call__(self):
... do something BAD here ...
gdb.post_event(SomeEvent())
当处理“SomeEvent”时,它将只执行“__call__”直到错误代码,然后返回,然后继续正常操作(正如我所观察到的)。
我在其他“回调”类型方法中注意到了这种行为,例如子类gdb.Breakpoint的Stop()。