デバッグとは「プログラムの誤りを見つけ、直すこと」を指します。
デバッグ作業はどのプログラムにも必要なことです。しかし、コードが長くなってくると変数や引数に何が入っているのか一々print()等で確認するのは面倒です。
そこで、ここではVisual Studio Codeを使ったPythonのデバッグ機能の使い方をご紹介します。
なお、ここではすでにPythonをVSCodeで実行できる状態にあることを前提としています。
拡張機能のインストール
まずはPythonの拡張機能をインストールします。
すでに入っている方は、この手順はスキップして大丈夫です。
画面左側にある枠で囲っているアイコンをクリック。
検索ボックスが出てくるので「Python」を入力します。
すると検索した拡張機能の(おそらく)一番上にPythonが出てくるので、これを開きます。
開いたらインストールボタンを押します。
これで拡張機能のインストールは完了です。
デバッグする
実際にデバッグしてみましょう。
なんでも良いので一つPythonファイルを作成しましょう。ここでは「sample.py」を作成しました。
作成したファイルにこれまたなんでも良いので簡単なコードを書きましょう。
今回はこんな感じのコードを書きました。
l = [1, 2, 3, 4, 5]
total = 0
for val in l:
total += val
print(total)
1から5までの数値のトータルを出力するコードです。使われている変数は「l」と「total」と「val」です。
さで、ではこれらの変数がどう変わっていくのかを、デバッグ機能を使って見ていきましょう。
画面右側の枠で囲っているアイコンをクリックします。
「create a lanch.json file」のリンクをクリックします。
「Python File」をクリックします。
Pythonでデバッグするためのlaunch.jsonというファイルが作成され、画面左側の項目が変わります。
sample.pyのタブに戻して、今度はブレークポイントを設置します。
ブレークポイントとは「この行で実行を止めたい」という箇所に置くマークのことです。
行番号の左側のスペースにカーソルを合わせると赤い丸のマークが出てきます。これがブレークポイントです。
設置したい箇所に置いてみましょう。ここでは1行目にブレークポイントを配置しました。
ここまで終わったら画面左上の再生ボタンをクリックしましょう。
するとブレークポイントを設置した行が黄色くなって、処理がストップします。
デバッグモードになると、画面中央上あたりにデバッグコマンドが表示されます。
続行ボタンです。次のブレークポイントまで処理を進めます。
例えば何万回も回るループを飛び越えたい場合などに使われます。
ステップオーバーボタンです。次の行に進みます。
ステップインボタンです。次の行に進みますが、現在の行が関数やメソッドの場合はその中に入って実行していきます。
ステップアウトボタンです。次の行に進みますが、現在の行が関数やメソッド内の場合は呼び出し元に戻って実行していきます。
つまりステップインの逆です。
再起動ボタンです。一度処理を終了してから、再度開始させます。
停止ボタンです。処理を途中で中断します。
デバッグではこの6つのボタンを使いながらバグを検出します。
では一つ行を進めてみましょう。ステップオーバーボタンを押します。
変数lが初期化され、VARIABLESの欄に表示されました。このVARIABLESの中には初期化された変数が表示されます。
もう一度ステップオーバーすると、今度は変数totalが初期化され、VARIABLES欄に表示されます。
このまま進めてみましょう。
変数の値がステップオーバーするたびに変わっているのがわかるかと思います。
こうやってステップ実行していき、変数の状態を確認しながらデバッグ作業が行えます。