2008年6月11日水曜日

トラブルシューティング:デバック

ソースを書き込んで、RUNだ!という時に、エラーが出て先に進めません。
そんな人へのアドバイス。

キホンはエラーメッセージを読んで、チェックしていきましょう。
メッセージによって、だいたいチェックの仕方が分かります。
よく出るメッセージと対応方法をまとめたので、参考にしてみてください。

1)No fieldname " "found in ....

そんな名前のクラス、オブジェクト、引数etcはないですよ。って言われた場合。
たいてい
「宣言していない」もしくは「タイプミス」が考えられます。
画像ではLinefeedに関する記述がないといっているので、ソースの一番最初から、自分がLinefeedの記述をした(と思っている)ところを探して行きます。


どうやら一番最初のintの宣言が間違っていたようでした。Linefedになっていたのでlinefeedに修正。
これで動きました。

なお画像では「No fieldname " "found in ....」の後に「Linfedっていう近い名前のものならある」とエラーメッセージが続きます。これでなんとなく、間違いのあたりがついてきます。

2)Syntax error, maybe a missing semicolon?

前後で;を忘れてるんじゃないか?と聞いてくれています。
ちょうど前の段のsize(640,480)の後、;が抜けてました。

3)Found too many {characters without a} to match

{}が足りない、というエラーです。ifの後や、voidの後に、きちんと{}が入っているか確認しましょう。

4)unexpected tolken: void
これはちょっと面倒です。

画像ではsetupの後に()が足りなかったようです。
他にも、前のvoid文が{}で閉じられていなかった場合も起こりえます。
ちょっとずつ{}の数があってるか、()ははいっているか,;はあるか?を確認していってください。
※Macユーザーの場合、ソース冒頭のimport文はsketch>Import Library>serial、、、という方法で記述してください。これを行わない場合にも、同様のエラーが出るようです。

5)その他、よくある間違い
全角スペースを使っていたりしませんか?英数入力になっているか常に確認しましょう。

0 件のコメント: