Biz-IT Blog

Business x IT --> Upgrade!

第2章 2. プログラムのデバッグ(Visual Studio Code 使い方)

この章では、最低限覚えておきたいことに絞って、エディタVisual Studio Code(以下VS Code) を使ったPythonプログラムの修正(デバッグ)方法について解説します。

VS Code 画面の構成

まず画面の構成を理解しましょう。

f:id:gaia1000:20210313164409p:plain

①アクティビティバー
主に使用する機能がアイコンで表示されている。

②サイドバー
選択したアクティビティバーの内容が表示される。

③エディター
プログラムを記述するエリアです。

④パネル
Pythonの実行コマンドの入力やプログラムの処理結果が表示される。
また、警告やエラー内容、デバック情報などもここで表示されます。

⑤ステータスバー
起動しているPythonのバージョン(左側のPython3.9.2-64bit)や文字コード(右側のUTF8)などが表示されます。
切り替えも可能です。

プログラムのデバッグ作業の流れ

プログラムの作成

以下のサンプルプログラムをVS Codeの③エディターにコピペし、ファイル名(~.py)をつけて保存する。

msg = 'hello, python World'
print(msg)
msg = 'プログラム終了'
print(msg)

f:id:gaia1000:20210313165933p:plain

デバッグモードの切り替え

VS Code画面の「実行とデバッグ」ボタン(赤丸)を押す。
すると、②サイドバー(赤四角)がデバッグモードに切り替わります。
上部の緑▷ボタンが、デバッグモードでプログラムを実行させるボタンです。

f:id:gaia1000:20210313170054p:plain

②サイドバー中央に変数・ウォッチ式・コールスタック・ブレークポイントが表示されていない場合は、上部の「・・・」メニューを開いてそれぞれにチェックを入れて表示させます。

f:id:gaia1000:20210314101620p:plain

ブレークポイントの設定

プログラムを途中で停止させてプログラムの動作を確認する場合、ブレークポイントを設定します。
③エディターのプログラム行番号の左側にマウスをあてると薄い赤●が表示され、そこをマウスクリックすると、ブレークポイント(濃い赤●)を設定できます。
(下の画面では3行目にブレークポイントが設定されています)

f:id:gaia1000:20210313171647p:plain

デバッグモードでプログラム実行

デバッグモード実行ボタンを押す。
すると、②デバッグツールバーが表示され、プログラムが1行目から実行、③ブレークポイントの位置で停止します。(この時、ブレークポイントの行のプログラムは実行せずその手前で停止)
④変数のところには、msg変数に格納されている値が表示されます。
このように、プログラムがここまで正常に動作しているのかどうかを確認することができます。

f:id:gaia1000:20210314101835p:plain

デバッグツールバーの機能

キー 機能
f:id:gaia1000:20210313172929p:plain 続行(F5キーに同じ):次のブレークポイントまで実行
f:id:gaia1000:20210313173251p:plain ステップオーバー(F10):1行だけ実行(関数に入らない)
f:id:gaia1000:20210313173706p:plain ステップ・イン(F11):1行だけ実行(関数に入る)
f:id:gaia1000:20210313173802p:plain ステップアウト(Shift + F11) :呼び出し元まで戻る
f:id:gaia1000:20210313173829p:plain 再起動(Ctrl + Shift + F5) :最初から再実行
f:id:gaia1000:20210313173858p:plain 停止(Shift + F5):実行の停止

デバッグモードでプログラム実行終了

ブレークポイントで停止後、続行ボタン(またはF5キー)を押すと、続きのプログラムが実行します。
下の画面は、プログラムが最後(7行目)まで実行し終了した状態です。
最後まで実行したので、②サイドバーのmsg変数の値は 'プログラム終了' に変わっています。

f:id:gaia1000:20210314101937p:plain


プログラムのエラー表示

プログラムのエラーには以下の2種類があります。
VS Codeではそれぞれどの様にエラー表示されるのかを解説します。

2種類のエラー
・構文エラー(SyntaxError):文法の誤りによるエラー。
・例外(Exception):文法の誤りではないが、プログラムが何らかのエラーがある。

文法的誤り(Syntax Error)

例えば、上記サンプルプログラムの5行目が、以下の様な記述になっていたとします。
これは「プログラム終了」の文字列がシングルクォーテーションで括られていない(右側の ' がない)ため、文法の誤りになります。

msg = 'プログラム終了 ←最後にシングルクォーテーション(')がない


このプログラムをデバッグモードで実行すると、プログラムは1行目から実行されず、ターミナルにエラーメッセージが表示されます。
f:id:gaia1000:20210313180556p:plain

内容は以下の通りです。
5行目に文法的な誤りがあることが分かりますので、このエラーメッセージを確認してプログラムを正しく修正します。

File "c:\Biz-IT\python_pgm\sample-2-1_1.py", line 5
msg = 'プログラム終了
^
SyntaxError: EOL while scanning string literal
 

例外(Exception)

例えば、上記サンプルプログラムの7行目の変数msgが誤記によりms(gが欠けている)になっていたとします。
この7行目だけを見れば特に文法的な誤りはありません。(変数msに格納された値をprintするという記述方法は文法的には問題なし)
しかし、プログラム全体で見ると、変数msが定義されていないため、プログラム実行中にエラーが発生します。

f:id:gaia1000:20210314102051p:plain

この場合、エラーがある行でプログラムが実行停止し、エラーメッセージがその行の下に表示されます。
このエラーメッセージを確認してプログラムを正しく修正します。


以上がVS Codeを使ったプログラムのデバッグで最低限覚えておきたい機能です。


次のページへ
Pythonトップへ戻る