如果我使用调试器,大多数情况下我只想看看解释器在我的代码中做了什么。我想跳过我使用的框架和库的所有代码。
据我所知,这被称为黑盒化。
我该如何使用Python ipdb或其他Python调试器实现此目的?
想象一下:
我使用了一个我信任的ORM框架,不想进行调试。
据我所知,这被称为黑盒化。
我该如何使用Python ipdb或其他Python调试器实现此目的?
想象一下:
我使用了一个我信任的ORM框架,不想进行调试。
cut_hair_method(orm_object.user)
这个cut_hair_method()
方法是我自己的,我想要调试它。
orm_object
来自于我使用的框架。调试器会进入orm代码并执行一些特殊的操作,但我并不关心。我无法告诉调试器:不要跳进orm代码!
更新
对于我的情况,很容易决定哪些代码应该在黑匣子中,哪些不应该:位于$VIRTUAL_ENV/src/
目录下的代码不在黑匣子中,其他所有代码都在。除非我明确告诉调试器其他信息。
更新2
我从这篇文章中得知了“黑匣子”的名称:https://hacks.mozilla.org/2013/08/new-features-of-firefox-developer-tools-episode-25/
r
从 ORM 调用中返回即可。这真的不难。将s
传递到orm_object.user
,再使用r
即可直接进入cut_hair_method()
。 - Martijn Pieters