メニューより 「表示 > ツールバー > デバッグ」にチェックを入れる。
VBA のコードを実行する前にブレークポイントを設置。実行して停止したところで、ツールバーの「呼び出し履歴」のアイコンをクリック。
ショートカットキーは、Ctrl + L 。表示メニューにある。
書いて忘れて頭スッキリ
メニューより 「表示 > ツールバー > デバッグ」にチェックを入れる。
VBA のコードを実行する前にブレークポイントを設置。実行して停止したところで、ツールバーの「呼び出し履歴」のアイコンをクリック。
ショートカットキーは、Ctrl + L 。表示メニューにある。
「PyScripter で UnitTest を自動で生成」の続き。
次の 4 つの仕組みがあるおかげで、プログラムを書くことができると言っても過言ではない。
一画面に納まる程度のスクリプトなら大丈夫だけれど、それ以上になると、もうダメなすぐに忘れる脳みそ。 (+_+) 上記の仕組みを作ってくれた人に感謝・感謝。 ^人^ それプラス軽くて使いやすい IDE、 Pyscripter があるから Python でスクリプトを書く気になれる。
ポカミスなんて当り前。バグなく一発で動かせることなんて滅多にない。だから、逆に何もなく動いたときには、「本当はどこか間違っているんじゃないか」 (@_@;) と疑ってしまう。そんなバグとお友達な自分は、Pyscripter ・ logging において次のような設定と使い方をしている。
まずは、ソースコードにおいて行番号が表示されるようにする。エラーがでたときには、ファイル名と行番号が出力されるので、行番号が表示されていた方が使いやすい。また、ちょっとだけ現在編集している場所から離れるときに、行番号を見て覚えておけば、元の場所に戻りやすい。
方法は、ツールバーのボタンで、行番号の表示・非表示を切り替える。以下のボタンが表示されてないときは、View > Toolbars >Editor Toolbar をチェックする。
または、次のように設定できる。
UnitTest を実行し、失敗またエラーがあった場合、ファイルのどの位置で発生したかについて、画面下部の Python Interpreter ペインに赤字で表示される。このとき、行番号が書かれている行でダブルクリックをすると、その位置へジャンプしてくれる。
出力が一杯になって見にくくなったら、Python Interpreter ペインの中で、すべて選択 (Ctrl + A)、 Delete 。
ログの出力の方法については、6.29.2 基本的な使い方を参照。 (cf. Google App Engine (Python) でログを出力 )
ログの設定を次のようにしておく。
logging.basicConfig(level=logging.DEBUG,
format='%(asctime)s %(levelname)s ' + \
'"%(pathname)s", line %(lineno)d, %(message)s')
ログの出力フォーマットについては、6.29.6 Formatter オブジェクトを参照。
例えば次のログ出力、
logging.debug(u"こんにちは、バグです!")
の結果は、
2008-09-13 11:40:37,125 DEBUG "c:\develop\src\python\liquorchecksimple\liquortest.py", line 174, こんにちは、バグです!
Pyscripter の Python Interpreter ペインで、出力された行をクリックすると、その場所へジャンプしてくれる。上記のように書式を設定した理由は、UnitTest の出力を真似すれば Pyscripter がその行へジャンプしてくれるかと思って。
import logging
if __name__ == '__main__':
logging.basicConfig(level=logging.DEBUG,
format='%(asctime)s %(levelname)s ' + \
'"%(pathname)s", line %(lineno)d, %(message)s')
logging.getLogger().setLevel(logging.DEBUG)