debug it-python-hack-a-thon-2011.02

Post on 24-May-2015

1.168 Views

Category:

Technology

6 Downloads

Preview:

Click to see full reader

DESCRIPTION

Debugging with python for print debug user.

TRANSCRIPT

DEBUG ITPython Hack-a-thon 2011.02

お前、誰よ?

村岡友介 (MURAOKA Yusuke)

@jbking

A zoper

フリーランス

デバッグしてますか?

with Python - Pythonを使って何かをデバッグパケットキャプチャ, リバースエンジニアリング, 組込インタラクティブシェル(manhole), ファンクショナルテスト(Selenium client driver)

for Python - Pythonのデバッグgdb, C拡張

on Python - Python上でのデバッグprint, pdb, django-debug-toolbar

デバッグって何よ?

with Python - Pythonを使って何かをデバッグパケットキャプチャ, リバースエンジニアリング, 組込インタラクティブシェル(manhole), ファンクショナルテスト(Selenium client driver)

for Python - Pythonのデバッグgdb, C拡張

on Python - Python上でのデバッグprint, pdbon Python - Python上でのデバッグprint, pdb, django-debug-toolbar

デバッグって何よ?

DEBUG ITPython Hack-a-thon 2011.02

Pythonの場合

再び質問デバッグしてますか?

print文(関数) フレームワーク提供デバッグツール pdb その他gdb

(脳内調べ)

今回の目標

print文(関数) pdb フレームワーク提供デバッグツール その他gdb

始めの一歩print文(関数)デバッグからpdbへ

PRINTの功罪

導入がめちゃくちゃ簡単

print(“x = %d” % x)

出力された値を見るだけしかできない

PDBを使いましょう

標準モジュール

導入がめちゃくちゃ簡単

python -mpdb demo.py

import pdb; pdb.set_trace()

実行コンテキスト上で処理を確認できる

デモ

次の一歩pdbからpudbへ

PDB SUCKS

一文字の変数を確認しようとするとコマンドと解釈されてしまう(cとかnとか)

!プレフィックス付けるとOK

何をやるにもコマンドうたなきゃいけない(lとかwとか)

PUDBを使いましょう

導入が簡単

easy_install pudb or pip install pudb

python -mpudb.run demo.py

import pudb; pudb.set_trace()

実行コンテキストを見ながら処理を確認できる

実行コンテキストのなかでシェルが使える

デモ

発展の話題

フレームワークも提供してる

django-debug-toolbar

Werkzeug built-in debugger

テストも頑張ろう

doctest

nose

pdb, pudb, doctestのサポート有り

継続ビルド(CI), バージョン管理(VCS), 環境分離(virtualenv, buildout)

いじょっ!

もっと使いやすいデバッグ環境あったら教えて :-)

top related