gorogoronyan FC2

JavaScript: デバッグの仕方 (1)

デバッグの仕方

プログラムの記述に誤り (バグ) があると プログラムは正常に動作しません。 プログラムを作るときにはこういう話がよく起こります。 このような誤りを修正する作業を デバッグ と言います。 プログラムが動作しない原因を調べるときには デバッガ と呼ばれるツールを使います。 2020年頃のWebブラウザでは、Chrome, Firefox, Edge などデバッガを標準で備えています。 デバッガでエラーの発生した場所(プログラムテキストの行番号) を調べたり、エラーの原因を調べたりします。

サンプル

以下、誤りのあるサンプルを Web ブラウザのデバッガで眺めてみます。

デバッガを起動する

下は Edge106 の例です。 Edge の右上の方にある 設定など のボタンからメニューを開き、 その他ツール開発者ツール を開くと デバッガの画面が表示されます。

Edge106 「設定など」などのメニュー。
Edge106 「設定など」などのメニュー。

デバッガの画面の コンソールのタブ を選ぶとプログラムの実行状況が表示されます。

Edge106 デバッガの「コンソール」を表示した例。
Edge106 デバッガの「コンソール」を表示した例。

デバッガは別のウインドに分割して表示できます

デバッガの右上の方にある DevTools のカスタマイズと制御 のボタンを押すと「ドッキングの位置」などのメニューが表示されます。 「別のウインドで表示」のボタンを押すとデバッガが別ウインドになります。

 Edge デバッガ、「DevTools のカスタマイズと制御」のボタン。
Edge デバッガ、「DevTools のカスタマイズと制御」のボタン。
 Edge でデバッガのウインドを別表示にする。
Edge でデバッガのウインドを別表示にする。

エラーメッセージを眺める

Edge のデバッガで誤りのサンプルを眺めると?

Edge で TestJS_debug1_2.html を表示し、 デバッガのコンソール画面を見ると下のように表示されます。

Edge106 デバッガの「コンソール」を表示
Edge106 デバッガの「コンソール」を表示

赤色の表示でプログラムの実行中にエラーが起こったことを示しています。 エラー内容が表示され、 右端にエラーが発生したファイル名や行番号などが表示されます。 ファイル名をクリックするとソースのタブの表示に切り替わり、 プログラムのエラーの発生した行を表示します。

1個目のエラーはソースファイル TestHTML_js_debug1_2.html の 17行目の16カラムに望ましくない文字 (unexpected token) コロン : が見つかった 文法エラー (Syntax Error) があったことを示しています。 コロン : をセミコロン ; に直すとこのエラーは出なくなります。

2個目のエラーはサンプル HTML のボタンを押したときに出力されます。 このエラーは 関数 hello() が見つからない (not defined = 定義されていない) 参照エラー (Reference Error) が起こったことを示しています。 1個目の文法エラーで関数 hello() 自体が存在しない扱いになるため このエラーが起こります。 Reference Error は関数が見つからないときに出るエラーで、 プログラムの書き間違いでよく起こります。

Chrome のデバッガの場合

Chrome のデバッガも Edge のデバッガと同じような画面です。 ツールニューの その他のツールデベロッパーツールconsole のタブ を選ぶと表示されます。

Chrome109 の conosle 画面
Chrome109 の conosle 画面

出てくるエラーは Edge と同じです。説明文も同じです。
1個目のエラーは、コロン : が文法的に正しくない場所にあると言っています。
2個目のエラーは、関数 hello() が見つからない参照エラーです。

Firefox のデバッガの場合

Firefox のツールニューから その他のツールウェブ開発ツール を選ぶとデバッガが表示され、コンソール のタブでプログラムの実行状況が表示されます。

Firefox107 のコンソール画面
Firefox107 のコンソール画面

エラーの内容も Edge や Chrome と同様です。

いろいろ

関連

inserted by FC2 system