を使用してループをスキップするにはどうすればよいpdb.set_trace()
ですか?
例えば、
pdb.set_trace()
for i in range(5):
print(i)
print('Done!')
pdb
ループの前にプロンプトが表示されます。コマンドを入力します。1〜5の値がすべて返されます。実行するpdb
前に、もう一度プロンプトが表示されprint('Done!')
ます。
回答:
until
ステートメントを試してください。
(とループの最後の行に移動しnext
たりn
)してから使用しますuntil
かunt
。これにより、ループの直後の次の行に移動します。
http://www.doughellmann.com/PyMOTW/pdb/には良い説明があります
f
のdebug
関数で使用されるものに相当するものは本当にありませんか?
until
(またはその短縮形unt
)を使用すると、(returnステートメントをヒットしない限り)常に1行下がるので、n
。の代わりに何度も使用することもできます。
breakpoint()
のループ内のセットでは機能しませんpython 3
。VB Editor
「その場で」ブレークポイントを受け入れることができますが、これは最も可能性が高い場合ではありませんpdb
。
受け入れられた回答(https://pymotw.com/3/pdb/)で言及されているリンクでは、このセクションがやや役立つことがわかりました。
特定の行まで実行を実行するには、行番号をuntilコマンドに渡します。
これがどのように機能するかの例を次に示します。
これにより、追加のブレークポイントを作成する必要があることと、ループの最後に移動する必要があることの2つから解放されます(特に、デバッガーを再実行しないと実行できないように既に反復している場合)。
これがのPythonドキュメントuntil
です。ところで、私はpdb++
標準デバッガーのドロップインとして使用しています(したがってフォーマット)がuntil
、両方で同じように機能します。
私がこれを正しく理解していれば。
これを行う1つの可能な方法は次のとおりです。
pdb
プロンプトが表示されたら。ただ、ヒットn
ループを終了するには(次の)10回。
ただし、のループを終了する方法を認識していませんpdb
。
r
ただし、関数を終了するために使用できます。
n
と入力しuntil
ます。これは、少なくともその現在のラインを超えるまで続きます。