【Age of Networks(AoN-DB)え~ちゃんぶろぐねっとわ~く】号外:【講座】効率の良いデバッグ法【何でもOK】

東方二次ゲームメインからオリジナル・企業系や漫画へ。TRPGやサバゲのアナログライクも

Age of Networks(AoN-DB)え~ちゃんぶろぐねっとわ~く

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

号外:【講座】効率の良いデバッグ法【何でもOK】

連日JavaScript漬けで自分の事を忘れかけております、え~ちゃんです。

前回お伝えした通り、JavaScriptデバッグの際、エラーメッセージを吐かないので、どこがエラーになってるのか分からない事が往々にしてあります。
今回ご紹介しますは、俗に言う「Printデバッグ」と呼ばれるものです。

具体的には、プログラムを起動した時、通るであろう場所に白々しく出力命令をポンッ、と置いておくだけ。
メッセージは各自がお好きなのをつけたり、変数の中身を見たり、使い勝手は良いです。
このデバッグ法の目的は、その部分を完全に通過したらエラーが修正された、若しくはそこにはエラーはない、という見方をします。

例をあげましょうか。

JavaScript
function error
{
var input=100;
alert("A");
alert(input);

input=200
alert("B");
alert(input);

}

C/C++
void main(void)
{
int input=100;
printf("A:input=%d",&input);
input=200;
printf("B:input=%d",&input);
return;
}

C#はprintfをcoutに変えてください。



ピンとイメージは来ないかも知れませんが、プログラムの規模が大きくなればなるほど、高い効力を発揮します。
アルゴリズム論でプログラムトレースをやるのと同じ要領で出来るので、イメージが出来れば誰でも簡単に出来て、しかもプロでも通用するデバッグ法です。
作っていたプログラムがある日突然動かなくなった時などに使ってみると案外、簡単に解決出来る事も。
話で聞くだけではきっと分かりにくいと思うので、実際にコンパイルしてみてください。


変数をチェックする事で、手作業ながら文法エラーも弾けるので是非ともお試しください。


コピペでも使えるように、追記にサンプルを公開しておきます。

追記

【当日更新まで】


使い方
講座をご覧の方にはお馴染みの、テキストエディタ(メモ帳とか)を開きます。
その後、以下のソースを全文コピーして貼り付けます。
ファイル名は何でも構いませんが、拡張子は.htmlにしてください。

後は、
alert(checker); //これを動かす
を文字通り、色々な場所に置いてみてください。
通っていない場所では出力されず、通っている場所では数字が表示される事が分かります。

その後、作ったファイルをブラウザで起動し、ボタンを押すとプログラムが実行します。


【ソース】

<html>
<head>
<title>HelloWorld!</title>
<script type="text/javascript" language="javascript">
<!--
function sample(checker)
{
alert(checker); //これを動かす

checker=100;

checker+=checker;

checker/=checker;

checker*checker;

checker=checker+(10-checker);

for(checker=0;checker<10;checker++)
{
if(checker==5)
{
checker=8;
}
else if(checker==9)
{
return;
}
else
{
switch(checker)
{
case 1:
checker++;

break;
case 2:
checker=5;

break;
case 3:
checker*checker

break;
}
}
}
if(checker==8)
{

return;
}

return;
}
-->
</script>
</head>
<body>
<form name="botan" method="post">
<input type="button" value="起動!" onclick="sample(0)">
</form>
</body>
</html>
FC2ノウハウ
関連記事
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。