2010-07-17 3 views
1
func(a(), b.c) 

При выполнении строки выше в PDB отладчика, используя step будут на самом деле шаг в a, а затем в поглотитель для b.c если его атипичный (например, будучи property), прежде чем на самом деле перейти на func.шага в вызов подпрограммы, но не вызовы, сделанные для параметров

Вообще-то я считаю себя, используя step с последующим r вернуться из кадров я не интересует, и часто необъяснимо переходят и упустить возможность step непосредственно в func.

Как я могу перейти непосредственно в func, или какая последовательность команд отладчика гарантирует, что я вернусь в func, а не пройду через него?

ответ

2

tb func («временный перерыв в func»), а затем c («продолжить») должен работать.

+0

О, я понятия не имел, что это было для, спасибо. –

0

Я бы справился с этим, установив перерыв на номер строки внутри func, который вас интересует, а затем используйте continue. Например предположим, что ваш код выглядит следующим образом:

110 def func(a1, a2): 
111  "" docstring "" 
112  first interesting line 

затем сделать это:

python -m pdb caller.py 
pdb> b 112 
pdb> c 
+0

Это оставляет перерыв в этой строке - 'tbreak' (временный разрыв, который работает только один раз), как я уже говорил ранее, кажется ближе к тому, что спрашивает OP. –