LoginSignup
186
161

More than 5 years have passed since last update.

JupyterまたはiPython Notebookでデバッグをする方法

Last updated at Posted at 2017-01-28

某勉強会で少し話題になっていたので、調べてみました。

準備

デバッグしたい行の直前に、以下を追加します。

from IPython.core.debugger import Pdb; Pdb().set_trace()

IPython.core.debuggerTraceを使っても良いですが、現在ではDEPRECATED(廃止)扱いになっています。
参考: IPython issue #9940

実行

JupyterやiPython Notebookで普通に実行すると、前項で追加した行の直後で実行が中断されます。

run1.png

ipdb>の後に現れるテキストフィールドに、コマンドを入力します。hでヘルプが表示されます。qで終了します。

ipdbコマンド一覧

参考: Python Ipdb Cheatsheet

移動系

コマンド 説明
n 次の行に入るまで実行 (next)
c 次のブレークポイントまで実行を継続 (continue)
unt 行番号 指定された行に到達するまで実行 (until)
d ステップイン (down)
u ステップアウト (up)
s 次の関数呼び出しまで実行 (step)
r 現在の関数が復帰するまで実行 (return)
q 最後まで実行して終了 (quit)

表示系

コマンド 説明
p 変数名 変数の値を表示 (print)
a 現在の関数の引数を表示 (args)
w スタックトレースを表示 (where)
h ヘルプ (help)

ブレークポイント設定系

コマンド 説明
b 行番号または関数名 ブレークポイントを設定 (break)
tbreak 行番号または関数名 一時的なブレークポイントを設定(ブレークポイントに到達したら削除される)
disable 番号 ブレークポイントを無効化
enable 番号 ブレークポイントを有効化
ignore 番号 回数 指定された回数だけブレークポイントを無視
condition 番号 設定する条件 ブレークポイントでの条件の判定値を変更
cl ブレークポイントを全て削除 (clear)
186
161
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
186
161