65
60

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【JupyterNotebook/Lab】Jupyter上でデバッグする3つの方法【Pdb】

Last updated at Posted at 2019-11-05

Jupyter上でデバッグしたい

print文を挟み、何回も繰り返し実行しながらデバッグの根源を突き止めるのはやめたい気持ち.

  • ブレークポイントを指定しデバッグする方法
  • エラー発生時にデバッガを起動する方法
  • エラー発生後にデバッガを起動する方法

の3つの方法を紹介します。

ブレークポイントを指定するデバッグ

デバッグをしたい行が明確な場合,
以下行をデバッグしたい行に挟みます.

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

実行例

以下はiが10になったらブレークする例です. たしかにi=10が確認できますね.

エラー発生時にデバッガを起動する方法

バグがどこかで発生した段階でPdbを起動させたい場合。

%pdb on
# %pdb off ← デバッグ検知モードをoffにしたい時

実行例

i == 10の時に意図的にエラーを発生させています. ちゃんとデバッガが起動していますね.

エラー発生後にデバッガを起動する方法

特定のセルでエラーが発生した時、後からPdbを起動させたい場合。

%debug

実行例

よく使うコマンド

Python Ipdb Cheatsheet

ここらへんですかね. 便利なのあったら教えてください

コマンド 説明
w スタックトレースを表示 (where)
n 次の行に入るまで実行 (next)
c 次のブレークポイントまで実行を継続 (continue)
q 最後まで実行して終了 (quit)
d 関数の中に潜る (down)
u 関数の外で出る (up)
s 次の関数呼び出しまで実行 (step)
r 現在の関数が復帰するまで実行 (return)
65
60
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
65
60

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?