8日Windows環境でMTのログをリアルタイムに見る前回に引き続きWin32関係のネタを書いていきます。Typeのログも見れると開発者的には便利だったりします。Typeのログをリアルタイムに見るためのプラグインを紹介したいと思います。DebugViewのインストール方法など事前の用意については、前回のエントリーを参照してください。今回はPerlのモジュールWin32-API-OutputDebugStringが必要になりますので事前にインストールしてください。ActivePerlではppmを用いて容易にインストールできます。Win32-API-OutputDebugStringWin32DStrプラグインのインストール今回紹介するプラグインは、Win32DStrプラグインです。APIであるOutputDebugStringを使ってデバッグ出力を行うWindows環境専用のプラグインです。Typeインストールディレクトリにある「plugins」ディレクトリの下にコピーしてください。選択し、プラグインの一覧に「Win32DStr」が表示されていることを確認してください。これでインストール完了です。Win32DStrプラグインを使うあとは勝手にMTのログが流れてきます。MT関連の開発やデバッグを行う場合には、MT::Logを使って追加のデバッグ出力をすることで、効率よくデバッグできるようになるかと思います。実際にMTにログがたまっていますので、、、ログの肥大化にご注意ください。Typeによるサイト構築やプラグイン開発、iPhone・Windows等のアプリケーション開発業務を行っています。お問い合わせはこちらまで。debuggerを使ったデバッグの仕方を書きました。プラグインをデバッグする方法というと、ログにメッセージや変数を出力する、いわゆる「printfデバッグ」になると思います。触れられている、いわゆる「printfデバッグ」について、今回は書いてみたいと思います。MTプラグインのデバッグで、もっとも多く行われているのがいわゆる「printfデバッグ」ではないかと思います。これは、プラグインの中から、変数の値や、文字列をシステムログに吐き出すことによって行います。この方法のメリットは、とりあえずプラグインを実行してみて、後から、ログをみることで、そのプラグインの動作状況を確認できることにあります。リアルタイムに確認したい場合にはあまり向いていませんが、プラグインの要所要所で、メッセージをログに吐き出すことで、動作の流れを把握することが可能です。プラグインに以下の関数を追加します。$log->errstr;}以下のように使います。YAML;doLog(YAML::Dump($hash_ref);例えば、関数に入った時にdoLog('Func:hoge');として、関数に入ったことを記録します。システム・ログにFunc:hogeと書かれていなければ、この関数は処理されていないということが分かります。関数内の要所要所でその処理内容を記録することで、関数内のどこまできちんと処理されたのかが分かりますし、条件分岐の流れなども追うことができます。関数の中でdoLog("hoge:$hoge");として、変数hogeの内容を記録すれば、その時の変数の値も分かりますし、デバッグの役に立ちます。ループ内で、変数の状況を記録すると、ループ中にどのような処理が行われたかを調べることもできます。システムログに書き出す、このデバッグ方法は非常に手軽です。システムログに大量のデバッグメッセージが残ってしまいますので、こまめにログを削除した方が良いかもしれません。それから、プラグイン完成時には、デバッグメッセージを吐き出している箇所を、すべて削除するようにしましょう。ご注意を!Windows環境の方はこちらのエントリも参照してみてください。Typeによるサイト構築やプラグイン開発、iPhone・Windows等のアプリケーション開発業務を行っています。お問い合わせはこちらまで。