セッションdebug
で単純に定義された関数では機能しないようです。ipython
ファイルからインポートする必要があります (つまり、--breakpoint
パラメーターはファイル名と行を取ります)。
ファイルを作成する場合test.py
In [9]: cat test.py
def simple_func():
a = 4
b = 5
c = a * b
print(c)
できます:
In [10]: import test
In [11]: %debug --breakpoint test.py:1 test.simple_func()
Breakpoint 1 at /home/paul/mypy/test.py:1
NOTE: Enter 'c' at the ipdb> prompt to continue execution.
> /home/paul/mypy/test.py(2)simple_func()
1 1 def simple_func():
----> 2 a = 4
3 b = 5
4 c = a * b
5 print(c)
ipdb> n
> /home/paul/mypy/test.py(3)simple_func()
1 1 def simple_func():
2 a = 4
----> 3 b = 5
4 c = a * b
5 print(c)
ipdb> n
> /home/paul/mypy/test.py(4)simple_func()
2 a = 4
3 b = 5
----> 4 c = a * b
5 print(c)
6
ipdb> a,b
(4, 5)
ipdb> n
> /home/paul/mypy/test.py(5)simple_func()
2 a = 4
3 b = 5
4 c = a * b
----> 5 print(c)
6
ipdb> c
20
ipdb> c
20
ipdb> q
これを使用する他の方法があるかもしれませんが、これは最も単純で最も単純な方法のようです。デバッガーはほとんど使用しません。代わりに、コード スニペットを Ipython でインタラクティブにテストし、スクリプトにデバッグを振りかけprints
ます。