Python 3.5.1 を使用
Python デバッガー モジュールを使用してスクリプトを実行すると、次のようになります。
[home]# python -m pdb myscript.py
これによりデバッグ セッションが開始されます。
> /somepath/to/myscript.py(1)<module>()
-> import os
(Pdb)
デバッグ セッション内から対話型ターミナルに入りたい場合は、次のinteract
コマンドを発行します。
(Pdb) interact
*interactive*
>>>
これで、Python 対話モードを実行しているかのようにコードを操作でき、interact
モードに入った時点でデバッガーで実行されているスクリプトのスコープ内のすべての関数または変数にアクセスできるようになりました。
対話モードを終了するコマンド(デバッグを続行するため)を発行すると、デバッグ セッション全体が終了します。
>>> exit()
The program exited via sys.exit(). Exit status: None
....long nasty stack trace here....
[home]#
私も試してみましたquit()
が、デバッガーも終了します。
interact
デバッグ セッション全体を終了せずにモードを終了するにはどうすればよいですか? これは可能ですか?
理想的には、中断した時点からデバッグ モードに戻り、コードのステップ実行を続行できるようにしたいと思います。
ベストアンサー1
送信EOF
Ctrl+を押すとD動作するはずです:
$ python -m pdb myscript.py
> .../myscript.py(1)<module>()
-> import os
(Pdb) import code
(Pdb) code.interact()
Python 2.7.11 (default, Dec 27 2015, 01:48:39)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> <CTRL-D>
(Pdb) c
...