问题
func(a(), b.c)
When executing the line above in the pdb debugger, using step
will actually step into a
, and then into the getter for b.c
if its atypical (such as being a property
), before actually stepping into func
.
Generally I find myself using step
followed by r
to return from the frames I'm not interested in, and often inexplicably pass over and miss the opportunity to step
directly into func
.
How do I step directly into func
, or what sequence of debugger commands will guarantee that I end up in func
rather than passing over it?
回答1:
tb func
("temporary break at func") followed by c
("continue") should work.
回答2:
I would handle this by setting a break at the line number inside func that you're interested in, and then use continue. For example suppose your code looks like this:
110 def func(a1, a2):
111 "" docstring ""
112 first interesting line
then do this:
python -m pdb caller.py
pdb> b 112
pdb> c
来源:https://stackoverflow.com/questions/3270174/step-into-subroutine-call-but-not-calls-made-for-parameters