を使用してループをスキップするにはどうすればよい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ます。これは、少なくともその現在のラインを超えるまで続きます。