私はPython 2.6.6を使用していて、pdbを使ってPythonプログラムをデバッグしていますが、 "next"と " 〜までpdb、それは両方の現在の関数の次の行まで実行を続けると思われる。pdbの "next"と "until"の違いは何ですか
5
A
答えて
3
PDBヘルプドキュメントは、それをこのように説明します
違いを示し(Pdb) help next
n(ext)
Continue execution until the next line in the current function
is reached or it returns.
(Pdb) help until
unt(il)
Continue execution until the line with a number greater than the current
one is reached or until the current frame returns
より親切
、Doug Hellman gives an example in his Python Module Tutorial of the Week:
ザ・それが明示的に実行されるまで リーチを続け以外のコマンドは、次のようになるまで現在の 値よりも高い行番号を持つ同じ関数内の行。つまり、untilはuntilを使用してループの末尾にある を終了することができます。
pdb_next.py
import pdb
def calc(i, n):
j = i * n
return j
def f(n):
for i in range(n):
j = calc(i, n)
print i, j
return
if __name__ == '__main__':
pdb.set_trace()
f(5)
$ python pdb_next.py
> .../pdb_next.py(21)<module>()
-> f(5)
(Pdb) step
--Call--
> .../pdb_next.py(13)f()
-> def f(n):
(Pdb) step
> .../pdb_next.py(14)f()
-> for i in range(n):
(Pdb) step
> .../pdb_next.py(15)f()
-> j = calc(i, n)
(Pdb) next
> .../pdb_next.py(16)f()
-> print i, j
(Pdb) until
0 0
1 5
2 10
3 15
4 20
> .../pdb_next.py(17)f()
-> return
(Pdb)
実行されるまで前に、現在の行は16、 ループの最後の行でした。実行された後、実行は17行目にあり、ループは になっていました。
until
の目的はeponymous gdb commandと共有されている:
現在のスタックフレームで、現在の行過去ソース線まで実行を継続し、達して
まで。このコマンドは、単一のループを複数回ステップ実行しないようにするために使用します。これは次のコマンド のようなものですが、untilがジャンプすると、プログラムカウンタが ジャンプのアドレスよりも大きくなるまで、自動的に の実行を継続します。これは、単一の が実行された後にループの最後に到達したときまで、untilはループを終了するまで までプログラムを実行し続けることを意味します。これとは対照的に、ループの最後の次のコマンド は、ループの先頭に戻り、次の繰り返しを実行します。
関連する問題
- 1. expressjs app.VERB呼び出しのnext()とnext( 'route')の違いは何ですか?
- 2. nodejのnext(err)とnext(new Error(err))の違いは何ですか?
- 3. pdb repeat next command N回
- 4. Bashの "while"と "until"の違い
- 5. /PDBと/ Fdオプションの違い
- 6. ノード* nextとノード* nextに違いはありますか?
- 7. applyMiddleware()の `next`とは何ですか?
- 8. PDBファイルとは何ですか?
- 9. ディスパッチのためにサンクを書くときには、 "next"と "store.dispatch"の違いは何ですか?
- 10. オブジェクト内のnext(){}は何ですか?
- 11. CSSセレクタの「until」に類似したものは何ですか?
- 12. $と$$の違いは何ですか?
- 13. `##`と `hashCode`の違いは何ですか?
- 14. typedefとの違いは何ですか?
- 15. NodeJS:「./ ..」と「..」の違いは何ですか?
- 16. {}())と{})の違いは何ですか?
- 17. `&`と `ref`の違いは何ですか?
- 18. `==`と `is`の違いは何ですか?
- 19. difftimeと ' - 'の違いは何ですか?
- 20. #{} $ {}と%{}の違いは何ですか?
- 21. ⊕と+の違いは何ですか?
- 22. アペンダーと〜の違いは何ですか?
- 23. "./"と "../"の違いは何ですか?
- 24. "$^N"と "$ +"の違いは何ですか?
- 25. %Qと%{}の違いは何ですか?
- 26. バックスティックと$()の違いは何ですか?
- 27. A`と ``の違いは何ですか[:] `
- 28. パッケージのインポートobjと何かの違いをインポートパッケージとPythonの何かの違いは何ですか?
- 29. XPathの//と?/の違いは何ですか?の使用は何
- 30. 繰り返しクラスのnext()メソッドと__next __()は何の違いがありますか?