在Python调试器中,如何进入第二个方法调用行?

问题描述 投票:0回答:1

我正在尝试在Django中调试一些东西,并且在ipdb的某个时刻,我最终得到了以下堆栈跟踪:

ipdb> u
> /Users/kurtpeek/Documents/Dev/lucy2/lucy-web/dashboard/views/base.py(191)get()
    190     def get(self, request, *args, **kwargs):
--> 191         self.object = self.get_object()
    192         return super().get(request, *args, **kwargs)

我想进入get_object()的电话。但是,如果我输入s命令,它会进入self.object调用(这是对象的__get__方法,Django视图):

ipdb> s
--Call--
> /Users/kurtpeek/.local/share/virtualenvs/lucy-web-CVxkrCFK/lib/python3.7/site-packages/django/db/models/manager.py(176)__get__()
    175 
--> 176     def __get__(self, instance, cls=None):
    177         if instance is not None:

是否可以在线路上进入第二个方法调用,而不是第一个?我试过仔细阅读https://docs.python.org/3/library/pdb.html#debugger-commands上的命令,却找不到任何命令。

python debugging pdb ipdb
1个回答
1
投票

我相信你可以用's'进入第一个函数然后用'r'运行到函数的末尾。从那里你应该能够进入第二个功能。

© www.soinside.com 2019 - 2024. All rights reserved.