支持黑盒子的Python调试器?

gue*_*tli 6 python debugging ipdb

如果我使用调试器,大多数时候我只想看看解释器在我的代码中做了什么.我想跨越我使用的框架和库的所有代码.

AFAIK这称为黑拳击.

如何使用Python ipdb或其他Python调试器执行此操作?

想象一下:

我使用了一个我信任的orm框架,并且不想调试.

cut_hair_method(orm_object.user)
Run Code Online (Sandbox Code Playgroud)

方法cut_hair_method()是我的,我想调试它.

orm_object是我使用的框架.调试器将进入orm-code并做一些我不关心的特殊事情.我没办法告诉调试器:不要跳进orm代码!

更新

对于我来说,这将是很容易的决定哪些代码应该是在黑盒子和代码没有:代码中$VIRTUAL_ENV/src/是不是在黑盒子,所有其他的代码.除了我明确告诉调试器别的东西.

UPDATE2

我从这篇文章中得到了"Black Boxing"的名称:https://hacks.mozilla.org/2013/08/new-features-of-firefox-developer-tools-episode-25/

Mar*_*wis 5

Python 调试器基类 ( bdb.Bdb ) 有一个 .skip 属性,提供要跳过的模块名称列表。您可以在实例化调试器时或稍后提供此列表。如果您想提供否定列表(您自己的模块列表),或者以其他方式计算是否应跳过模块,您可以对调试器类进行子类化并覆盖 is_skipped_module。