2016-08-23 3 views
16

私が使用してPythonスクリプトでエラーを検査したい:死後のデバッグ中にipdbを終了するにはどうすればいいですか?

$ python3 -m pdb my_script.py 

これは私がc実行を継続することができ、そこからPDBプロンプトに私をドロップし、それがエラーに当たったとき、私は、変数を検査することができq私のシェルに戻るためにスクリプトの実行を終了します。

それがよりカラフルであるので、私は、iPythonデバッガモジュールで同じことを試してみました:

$ python3 -m ipdb my_script.py 

はしかし、私は、私は、エラーを検査行っていたら、デバッガを終了することはできませんよ。

$ python3 -m ipdb my_script.py 
ipdb> c 
Uncaught exception. Entering post mortem debugging 
Running 'cont' or 'step' will restart the program 
ipdb> Inspect some variables at this point 
ipdb> q 
Post mortem debugger finished. The my_script.py will be restarted 
ipdb> q 
Uncaught exception. Entering post mortem debugging 
Running 'cont' or 'step' will restart the program 
ipdb> q 
Post mortem debugger finished. The my_script.py will be restarted 
ipdb> q 
Uncaught exception. Entering post mortem debugging 
Running 'cont' or 'step' will restart the program 
ipdb> q 
Post mortem debugger finished. The my_script.py will be restarted 
ipdb> q 
Uncaught exception. Entering post mortem debugging 
Running 'cont' or 'step' will restart the program 

どのようにこのデバッガを終了するには:qはちょうど再実行スクリプトおよび事後モードの間に切り替え続けquitコマンドを使用していますか?

+1

^Cまたは^ Dは機能しませんか?私はときどき似たようなものを手に入れました。終了するには数回かかっていました – spruceb

+1

@sprucebそれではうまくいきません! –

+0

最悪の状態になりました^ Z、 'kill%1'はそれを止めるべきです – spruceb

答えて

2

これを実行IPython 5.1のバグでした。これはthis pull requestで修正され、IPython 5.2以降ではもはや問題にはなりません。デバッガを終了するにはq,quit()、またはCtrl + dを使用できるようになりました。

15

ユーザーがコメントしたように、an open ipdb issueがあり、いくつかの回避策が提案されています。私にとってはこれらはうまく:

  • プレスCTRL +Z
  • ipdb> import os; os._exit(1)
関連する問題