JScriptのデバッグ
最近、JScript(WSH)でスクリプト書いてるんですが、そのデバッグ方法について。
多分Visual Studioがインストールされてないと駄目だと思う。(Expressでいけるかどうかは不明)
今までやってたのは
WScript.Echo(variable);
とかってやって変数を出力することですが、何時の時代のデバッグ方法やねん。て感じだし、作業効率もよろしくない
で。なんか無いかな−とグーグル先生に聞いてみたけど、キーワードが悪いのか「これだ!」というのがない。藁にもすがる思いでWSHの実行プログラムであるcscriptのコマンドラインオプションを調べてたら
使い方 : CScript scriptname.extension [オプション...] [引数...] オプション : //B バッチ モード : スクリプトのエラーおよびプロンプトを非表示にする //D アクティブ デバッグを使用可能にする //E:engine スクリプト実行時にエンジンを使用する //H:CScript 既定のスクリプト ホストを CScript.exe に変更する //H:WScript 既定のスクリプト ホストを WScript.exe に変更する (既定値) //I 対話モード (既定値、//B と逆の動作) //Job:xxxx WSF ジョブを実行する //Logo ロゴを表示する (既定値) //Nologo ロゴを表示しない : 実行時に見出しを表示しない //S このユーザーの現在のコマンド ライン オプションを保存する //T:nn 秒単位のタイムアウト時間 : スクリプトを実行できる時間の最大値 //X デバッガでスクリプトを実行する //U コンソールからリダイレクトされた I/O に Unicode を使用する
おー。あるじゃん。ということで、
>cscript //X hoge.js
こんな感じで起動すると
こんな画面が出るんで、適当なやつを選択してOKを押す。
私は何となく、Visual Studio 2010を選択してます
デバッグ中に編集は出来ますが、エディットコンティニューは不可です(ウチの環境だけかも知れないが、編集すると強制終了することがあったんで、編集しない方が無難かも)。
他はブレークポイント貼ったり、ウォッチ変数追加したり、「次のステートメントを設定」まで出来ます。
デバッグの中断はデバッガで[デバッガの中断]とやっても中断してくれないっぽいので、スクリプトを実行してるコマンドライン窓を閉じるといいみたい。
あと、ブレークポイントは実行する度に初期化されるみたいなので、注意が必要です。
キーワードとか行数が分かってるなら、キーボードマクロとか登録しておくと便利かも。
・・・デバッグが必要なほどのスクリプト書くなら他の言語(rubyとかPythonとか)使うって方法が正道なんじゃ?とかいう突っ込みはなしの方向で