Pythonデバッガーpdbで、デバッグセッションを終了せずに対話モードを終了するにはどうすればいいですか?質問する

Pythonデバッガーpdbで、デバッグセッションを終了せずに対話モードを終了するにはどうすればいいですか?質問する

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

送信EOFCtrl+を押すと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
...

おすすめ記事