web-dev-qa-db-ja.com

ipdbデバッガー、サイクルから外れます

ブレークポイントを使用せずにipdbでデバッグしているときに、サイクルからステップアウトするコマンドはありますか(たとえば、forまたはwhile)?

untilコマンドを使用してリスト内包表記から抜け出しますが、可能であれば、ループブロック全体に対して同様のことを行う方法がわかりません。

17
Javier Novoa C.

これは明白に聞こえるかもしれません:ジャンプするとジャンプします。これは、ジャンプした行を実行しないことを意味します。これを使用して、実行したくないコードをスキップする必要があります。

このページを見つけたときと同じように、おそらくtbreak(一時的なブレークポイント。最初にヒットしたときに自動的に削除されます。引数はbreakと同じです)が必要です。

8
jimifiki

j <line number> (jump)を使用して別の行に移動できます。例えば、 j 2828行目に移動します。

19
amstree

これがuntilコマンドの目的だと思います。 nextに似ていますが、ループの前の行番号にジャンプすると、ループを終了するまで続行する点が異なります。

unt(il)
Continue execution until the line with a number greater than the current
one is reached or until the current frame returns

一般に、現在の関数から「ステップアウト」するには、returnを使用します。

r(eturn)
Continue execution until the current function returns.
16
John Lehmann

別のデバッガーを使用する場合は、 trepan に、さらに多くの方法があります。それはよりgdbに似ています。だからあなたはあなたが踏みたい回数のカウントを与えることができます。または、 continue デバッガコマンドで行番号を指定することもできます。このコマンドは、本質的に、その行に一時的なブレークポイントを設定してから、「continue」を発行します。ステッピングを変更する他のものは "set different" です。 step に付けることができる偶数の接尾辞も参照してください。

Ipdbと同様に、ソーステキストの構文の強調表示があることに注意してください。

1
rocky