Help us understand the problem. What is going on with this article?

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

More than 3 years have passed since last update.

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

準備

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

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)
makopo
StackOverflowや製品のフォーラム・Issueにはあるけど、日本語での情報が充実していないものを中心に載っけています。興味とお仕事の事情に応じて投稿技術の傾向が変わりますので、フォローされる方はご留意ください。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした