👨‍💻

jupyter notebookのpdbメモ

2024/02/17に公開

概要

jupyter notebookでpdbを使ってデバッグするときのtips

例外が発生したあとにデバッグ開始

%debug

例外が発生したときに自動でデバッグ開始

%pdb on

指定のコードに到達したときにデバッグ開始

import pdb;pdb.set_trace()

cheat sheet

https://kapeli.com/cheat_sheets/Python_Debugger.docset/Contents/Resources/Documents/index

ライブラリ内の特定の行にブレイクポイントを貼る

transformersのLlamaTokenizerFastクラスのデバッグをしたい時の例

解析したいクラスのファイルパスを取得

import inspect, transformers, subprocess

file_path = inspect.getfile(transformers.models.llama
.modeling_llama)
print(file_path)
/usr/local/lib/python3.10/dist-packages/transformers/models/llama/modeling_llama.py

ブレイクポイントをいれる行数を特定するためにファイルの中身を表示

print(subprocess.run(f"cat {file_path} | awk '{{print NR, $0}}'", shell=True, capture_output=True, text=True).stdout)

ソースコードが表示される

止めたい行にブレイクポイントを貼る

b /usr/local/lib/python3.10/dist-packages/transformers/models/llama/modeling_llama.py:1176

Discussion