Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
![[Python]超便利なデバッグ - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/e3280f4bd97a9fb278402870001dc704b384dab4/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fqiita-user-contents.imgix.net%252Fhttps%25253A%25252F%25252Fcdn.qiita.com%25252Fassets%25252Fpublic%25252Farticle-ogp-background-afbab5eb44e0b055cce1258705637a91.png%253Fixlib%253Drb-4.0.0%2526w%253D1200%2526blend64%253DaHR0cHM6Ly9xaWl0YS11c2VyLXByb2ZpbGUtaW1hZ2VzLmltZ2l4Lm5ldC9odHRwcyUzQSUyRiUyRnFpaXRhLWltYWdlLXN0b3JlLnMzLmFwLW5vcnRoZWFzdC0xLmFtYXpvbmF3cy5jb20lMkYwJTJGMTUwNDk0JTJGcHJvZmlsZS1pbWFnZXMlMkYxNjAzNzgwMDk4P2l4bGliPXJiLTQuMC4wJmFyPTElM0ExJmZpdD1jcm9wJm1hc2s9ZWxsaXBzZSZmbT1wbmczMiZzPTY1Yjg1ZGE1NzFjNDM2MWQ2MDA0NGU5ZDcxMmYxMDcy%2526blend-x%253D120%2526blend-y%253D467%2526blend-w%253D82%2526blend-h%253D82%2526blend-mode%253Dnormal%2526s%253D8f8590c258dd413efe3b46841299eb50%3Fixlib%3Drb-4.0.0%26w%3D1200%26fm%3Djpg%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk2MCZoPTMyNCZ0eHQ9JTVCUHl0aG9uJTVEJUU4JUI2JTg1JUU0JUJFJUJGJUU1JTg4JUE5JUUzJTgxJUFBJUUzJTgzJTg3JUUzJTgzJTkwJUUzJTgzJTgzJUUzJTgyJUIwJnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnR4dC1jb2xvcj0lMjMxRTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmdHh0LXBhZD0wJnM9MWFmMDFiMjBhNzNiOTJjYTEzYTYzYTI4NDUzYTA3MTk%26mark-x%3D120%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTgzOCZoPTU4JnR4dD0lNDBzaGlub2NoaW4mdHh0LWNvbG9yPSUyMzFFMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zNiZ0eHQtcGFkPTAmcz00MmQwNGRmMmI0ZDc5MmNlMzA3OWI1ODliNTk0M2FmNg%26blend-x%3D242%26blend-y%3D480%26blend-w%3D838%26blend-h%3D46%26blend-fit%3Dcrop%26blend-crop%3Dleft%252Cbottom%26blend-mode%3Dnormal%26s%3Da06ec1b1ca9dda34e16b3d95c31bc89b)
Python を初めて間もない頃、自分も print デバッグしてました。効率の悪さを認識しつつも、IDEを導入してデバッグする方法を調べてセッティングして、という手順が面倒でずっと放置してました。 // 普段は vim で開発してます そうこうしてたら print デバッグではどうにもならないバグにぶち当たり、仕方なくデバッグポイントを置く方法を調べたわけです。するとどうでしょう。 ソースコード中に以下の一文を入れるだけではないですか。 import pdb; pdb.set_trace() たったこれだけで、上の一文を挿入した行で処理が停止し、コンソール上でステップ実行が出来るようになります。最高かよ。 個人的にですが、デバッガー起動中によく使うコマンドとしては以下です。 コマンド 説明 s(tep) ステップイン n(ext) ステップオーバー r(eturn) ステップアウト l(
Python 2.7.3で、コード中の任意の位置でデバッガpdbを起動する方法。 このコードをブレークしたい行の手前に挿入しておく。 import pdb; pdb.set_trace() 挿入したスクリプトをシェルで実行すると、デバッガが起動する。よく使うコマンドは次の5つ。 s(tep) # ステップイン n(ext) # ステップオーバー r(eturn) # ステップアウト b(reak) n # 実行中のファイルのn行目にブレークポイントを設定 c(ontinue) # 次のブレークポイントまで実行 l(ist) # 実行中のコードを表示 h(elp) # ヘルプを表示 q(uit) # デバッガを終了 デバッガコマンド以外はPythonの文として実行されるので、変数の値を確認したりできる。 print varname References26.2. pdb — Python デ
概要 pdb を利用してみる。 ドキュメント 公式ドキュメント「pdb — The Python Debugger」に概要が書いてある。 使い方 スクリプトを直接起動してデバッグする方法と、インタラクティブshell で起動する方法があるが、ここでは、スクリプトを起動してデバッグする方法で書く。 以下がデバッグするスクリプトのサンプル「even.py」。 自分の場合、スクリプトを直接デバッグすることがあまりなく、デバッグするのはライブラリとかをunittest経由でデバッグすることがが多いのでサンプルは unittest で書いている。 以下の例はクラス内の関数が偶数だけ返す所でバグがあり、奇数を返すようになっている。そんなに良い例ではないかも。 #!/usr/bin/env python # -*- coding: utf-8 -*- import unittest class Samp
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く