- ベストアンサー
お勧めのデバッグツールは?
CGIでちょっと凝った掲示板を作成していますが、なかなか思うように進みません。 そこで、お勧めのデバッグツールがあったら、教えて下さい。 変数の中身やトレースして、おっかけたいのです。 開発環境OSは、WindowsXP Proです。 ちなみに言語は、CとVBA経験あり、Perlは初心者
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
> Web上でクリックされたとき(サブミットされたときなど)に機能しているサブルーチンなどは、これではデバッグできないということでしょうか? あらかじめその操作が行われたと仮定して動作するように、分岐の部分やQUERY_STRINGSの値を変えておくとか、Windowsの環境変数にあらかじめセットしておくことで可能になります。 コマンドプロンプトであらかじめ SET xxx=yyy ただ、Windowsの場合文字列中に = があるとダメなので、この場合は前者の方法しか使えません。 UNIXのsh・bashであれば host:~$ export "QUERY_STRINGS=mode=hoge&action=huge" というように = が入っていても大丈夫です。 > 変数の中身をチェックしたりするにはどうすれば良いですか? 単純に、表示させたい所でprint文を使って表示させちゃいましょう。 print 表示させたい変数; 書き加えるのが少々面倒ですが確実な方法です。 デバッグ終了後に消しておくのも忘れずに。
その他の回答 (3)
- hrm_mmm
- ベストアンサー率63% (292/459)
>> 変数の中身をチェックしたりするにはどうすれば良いですか? >単純に、表示させたい所でprint文を使って表示させちゃいましょう。 >print 表示させたい変数; >書き加えるのが少々面倒ですが確実な方法です。 >デバッグ終了後に消しておくのも忘れずに。 私もこの方法をよく使います。 デバッグ後に消すのは、数が多いと結構面倒なので、 デバッグprint関数を作って、このなかのprint文をコメントアウトすると いっぺんにすべてのデバッグ出力をクリアできるという方法を重宝して使っています。 sub debug_print{ print @_; ### デバッグ終了後この行をコメントアウト } &debug_print ("a=$a;list=",@list);
お礼
ありがとうござます! 早速使ってみたいと思います。
- Ethersky
- ベストアンサー率71% (168/235)
プロンプトです。 「スタート」→「ファイル名を指定して実行」→「cmdと入力してOK」 スクリプトのあるディレクトリに移動してから perl -d スクリプトのファイル名 なお、あたりまえですがperlのパスが通ってないとだめです。 余談ですが、Perlの文法のチェックはwとcの両方のオプションを指定してできます。(チェックだけならcですが、wをつけると警告もしてくれます。) perl -wc スクリプトのファイル名
補足
ありがとうございます。 あのあと、操作に関してはわかりました。 このツールだと、最初からワンステップづつ実行され、&htmlが呼び出されたところで一気にHTMLがダンプされて終わりますが、Web上でクリックされたとき(サブミットされたときなど)に機能しているサブルーチンなどは、これではデバッグできないということでしょうか? また、一行づつ単位で変数の中身をチェックしたりするにはどうすれば良いですか?
- Ethersky
- ベストアンサー率71% (168/235)
perlにdオプション(run program under debugger)をつけて perl -d hogehoge.cgi これで一行ずつ何をしているのか表示しながら処理してくれます。 次の行を処理させるときはnを入力してEnter。
補足
早速のご回答ありがとうございます。 “perl -d xxxxx.cgi”は、コマンドでしょうか? Windows XPのどこから操作すれば良いでしょうか?
お礼
ありがとうござます! 助かります。