「デバッグの構成」とは、Pythonプログラムをどのような構成でデバッグするかを指定するものだ。本稿執筆時点(2018年6月4日)では、以下のような構成がデフォルトではサポートされている(一部抜粋)。
構成を行うには[デバッグ]ビューにある歯車ボタンをクリックする。これにより、何の準備もせずにデバッグを開始したときと同様に[環境の選択]を行うメニューが表示されるので、先ほどと同様に[Python]を選択する。これにより、launch.jsonファイルが作成され、そこにデフォルトのデバッグの構成情報が生成される。このとき、.pyファイル以外がVS Codeでアクティブになっていると、[環境の選択]の選択肢にNode.jsなど、他の言語も表示されるので注意しよう。
作成したデバッグの構成は、既に述べた通り、[デバッグの開始]ボタンの隣にあるドロップダウンに表示される。ここでは、[Python: Current File]を選択しておこう(デフォルトでこれが選択されているはずだ)。
デバッグ構成を行っておけば、[デバッグの開始]ボタンをクリックしたときに[環境の選択]を行うことなく、スムーズにデバッグ実行が開始される。launch.jsonファイルの詳しい内容については後で見るとして、ここでは[Python: Current File]構成に1つだけ項目を追加しよう。launch.jsonファイルをエディタに開き、次のコードで強調表示された行を追加する。
{
"version": "0.2.0",
"configurations": [
{
"name": "Python: Current File",
"type": "python",
"request": "launch",
"program": "${file}",
"stopOnEntry": true
},
// …… 省略 ……
]
}
stopOnEntry項目をtrueにすると、デバッグ実行開始時に実行が中断されるようになる。そのため、プログラム開始時からステップ実行を行いたいといった場合には便利な項目だ。
では、[デバッグの開始]ボタンをクリックして、デバッグ実行を始めよう。すると、次の画像のように関数fib1を定義する直前の状態で実行が中断される。現在実行しようとしている行は、エディタ左端の黄色の三角形(と黄色の背景色)で示される。
また、ウィンドウ上部にはデバッグ用のツールバーが表示され、さまざまな操作を行えるようになっている。
このツールバーには左から順に以下の要素が用意されている。
例えば、以下はデバッグ実行を開始して、[ステップ オーバー]ボタンを一度クリックしたところだ。
ここで注意したいのは、[デバッグ]ビューにある[変数]ウィンドウだ。ここには、Python処理系により自動的に定義される変数、プログラマーが記述して、現在のスコープに存在する変数や関数などが表示される。上の画像を見ると、[変数]ウィンドウの一番下に「fib1」はあるが、「fib2」はまだない。このことからも、現在は関数fib2の定義前であることが分かる。
ただ、「この辺のコードには問題がない」ことが分かりきっているので、「一度にここまで実行を進めてしまいたい」と感じることもある。そうしたときに、使えるものが2つある。1つはブレークポイントで、もう1つはコードを右クリックしたときにコンテキストメニューに表示される[カーソル行の前まで実行]項目だ。ブレークポイントについては後で見るとして、取りあえず後者を試してみよう。
「ここまで実行してもいいだろう」という位置を右クリックして、コンテキストメニューから[カーソル行の前まで実行]を選択
ブレークポイントは設定したり設定を解除したりするのに一手間二手間が必要になる。そのためブレークポイントを設定することなく、「この辺がちょっと気になる」という部分まで実行を進めるときには、この機能が便利に使えるはずだ。
次にブレークポイントを見ていくが、その前に[続行]ボタンか[停止]ボタンをクリックして、デバッグ実行を終了しておこう。
Copyright© Digital Advantage Corp. All Rights Reserved.