[an error occurred while processing this directive] [an error occurred while processing this directive]


プログラミング
逆引き
クライアントとの通信
VisMでの通信
Factoryでの通信
WebServiceでの通信
CSP (Cache' Server Pages)
Cache'SQL
設定・性能


【広告】









ここはテスト中のページです。

デバッグツールSerenji(セレンジ)

Debug on Serenji.

Cache'のルーチンをデバッグするツールとして、Sernji(セレンジ)という製品があります。

このSerenjiを使うとルーチンのデバックが、非常にやりやすくなります。
具体的に言うと、VisualBasicのデバッガと同様の操作で、変数の中身や関数の実行結果を見ながら処理の内容を確認することができます。

Serenjiの情報は以下のサイトにあります
・Cache'info
http://www.cacheinfo.com/serenji/index.htm
・GEORGEJAMES software
http://www.georgejames.com/tools/Serenji.htm

デバッグするルーチンは、どのOS上でも構いませんが、Serenjiを実行できるのはWindows環境だけです。


■インストール
キットは"http://www.cacheinfo.com/serenji/product-info.htm#評価版ダウンロード"ここからダウンロードできます。また、インストール手順などもこのページにあるので、詳しくはそちらを参照してください。
ここでは簡単に要点だけをメモします。
ダウンロードしたキットを実行します。
インストールしたディレクトリの中に、Cache.rsaとCache,objの2つのファイルがあります。
これをデバックする対象のルーチンなどがあるCache'にインストールします。
ここでは、ローカルマシンのCache'で実行するものとします。


■ルーチンのデバッグ
セレンジをインストールすると、デスクトップにアイコンが2つ追加されます。
白いアイコンをクリックすると、自動的にセレンジでバッグ用のターミナルが立ち上がります。
ターミナルに次のように入力すると、セレンジのインターフェイスが起動し、デバックが始まります。

USER> DB TEST^ROUTIN("value")

通常Cache'ターミナルでDoする代わりにDBと入力してください。

デバッグが始まると、反転している行で処理が停止しています。
ファンクションキー[F8]を押すと、一コマンドずつ実行します。

そのほか、次のように動作します。
【ツールバーの説明】

変数にカーソルを合わせると、その内容が表示されます。
変数ビューのPublicは全てのスコープの変数を表示します。Privateは実行中のスコープでの変数の状況のみを表示します。大規模なルーチンになるとPublicで追うのは辛いかもしれません。すべてPrivateで必要な変数が一覧できる状態になっているのがイイ設計といえるかもしれません。

ブレークポイント
ウインドウの左端の灰色の部分をマウスでクリックすると、茶色い丸が表示されます。これはこの行にブレークポイントが設定されていることを表します。[F5]や[Ctrl+F8]等でスキップ実行しているときに、プレー九ポイントが設定されている行に処理が来るとそこで実行が停止します。怪しげな部分の直前にブレークポイントを設定し、そこまでの処理をスキップしたりするのに使います・
変数プレークポイント
これはある変数の値が変更されたときに、そこで処理を停止します。どこで変数の値が変わっているのか分からない時などに非常に重宝します。

イミディエイトウィンドウ
ここはターミナルと同じように動作します。W xxxxで変数の中身を表示したりもできますが、S i=0などと入力してエンターキーを押すと、変数の値を書き換えることができるのは非常に便利です。

これらの機能を駆使して、どこで問題が発生しているのかを突き止めることができます。


■メソッドのデバッグ
これは、基本的にはルーチンのデバックと同じです。
ターミナルでメソッドをデバッグする際に、Doの代わりにDBと入力してください。


■CSPのデバッグ
CSPは少しデバッグを始めるまでの方法が特殊です。
インストールディレクトリの中にあるSerenji.cspを、デバッグ対象のcspファイルがあるディレクトリにコピーして下さい。
セレンジを立ち上げ、タスクトレイ内で待機状態にして下さい。
コピーしたSerenji.cspをWebサーバ経由で表示させます。

[Enable Debugging]ボタンを押します。
セレンジのデバッグウィンドウが立ち上がります。ここではすぐに[F5]キーまたは【画像】ボタンを押してください。
ブラウザの表示内容が変わります。
new browser window リンクをクリックすると新しくブラウザが表示されます。(以下のブラウザに対する操作は全てこのウィンドウに対して行います)
新しく開いたブラウザは、空のページで起動しています。このブラウザのアドレス欄にデバッグを行うアプリケーションのURLを入力して下さい。

通常アプリケーションを利用するように操作します。

デバッグをしたいページの一つ前のページに来たら、そこでセレンジの一時停止ボタン【画像】を押して下さい。その後、デバッグをしたいページをブラウザで表示させてください。

ブラウザが次のページを表示しようとした瞬間、セレンジが反応して処理を一時停止させます。
ここからは通常のデバッグになります。
しかし、CSPの内部処理がしばらく続くので、ブレイクポイントを入れたりRunToCursolなどをうまく使って先にサクサク進んでください。OnPageHTML()などが主にデバッグしたいところではないかと思います。

この内部処理を追っていくのもCSPがどのように動いているかを知る上で、非常に参考になると思います。

デバックしたい内容がハイパーイベントの場合は、そのイベントが発生する(例:ボタンをクリックする)前にセレンジで一時停止ボタン【画像】をクリックして下さい。その後ハイパーイベントが発生してCache'の処理が始まったところでデバッグが開始できます。

注:デバックできるのはCache'で処理される内容だけです。JavaScript等のデバックはできません。

デバッグを行っているとタイムアウトが発生しやすくなります。それを防ぐためにはIISのタイムアウト値、CSP Gatewayのタイムアウト値などを長めに設定しておくと良いかも知れません。






[an error occurred while processing this directive] [an error occurred while processing this directive]
2012/11/19Update