新規記事投稿 フォロー記事投稿 記事のキャンセル
From: にあ <nir@mvg.biglobe.ne.jp>
Subject: 細かいデバッグをする時は...
Date: 1999/01/12 04:32:34
Reference: mesh.program/00564

1月11日に、三葉工房の管理者さんは書きました。

>少しは,実行が出来るようになっています。

プログラミングも慣れてきましたか?

>実は,条件指定がサブルーチンtoppage2に負けてしまって,

チョット詳細は見ていないんですけど、細かいところのデバッグで詰まってしまった時は
本当に「〜なはず」な所が期待通りに動いているのかきちんとチェックしてみることが大切です。
思いこみで動作を追っていくとなかなかバグは取れないものです。

例えばCGIなどの場合、スクリプトの最初の方で出力形式を text/plain にしてしまい、
出力をHTMLとして解釈させずにそのまま表示出来るようにしておいてから、変数の内容などを
どんどん出力中に書き出していけば、スクリプトの特定場所での変数値などは簡単に確かめ
られますから、どこで間違っていたのか? などもすぐに分かります。

つまり、問題のスクリプトならスクリプトを、

#!/usr/local/bin/perl
$|=1;
print "Content-Type: text/plain\r\n\r\n";
require './cgi-lib.pl';
  .
  .

の様に始めておけば、変数の内容を、

printf("***** inemit = '%s', pope = '%s'\n", $in{'inemit'}, $pope);
if ($in{'inemit'} ge $pope) {
&check;
  .
  .

などと書き出すだけでもブラウザに表示されます。

何だか分からなくなった時には、実際のスクリプトにこういう試験行を入れていくのが、
簡単に見えて一番効率的だったりします。(^^)