Visual Studio codeでDebug
はじめに
いわゆるPrint debugging でバグだしを良くしているのだが、せっかく Visual Studio Code を利用しているので、その Debug 機能を使ってみようと思う。
Visual Studio CodeのPythonデバッグ機能は、Pythonの標準デバッグツールであるpdb (Python Debugger) のラッパーとして機能し、Visual Studio Codeのユーザーインターフェース通じてpdbの機能を操作します。pdbではPythonコード内にブレークポイントを設定し、プログラムの実行を一時停止したり、ステップ実行したりする事が可能です。
次のようなデバッグを実現します。
- ビジュアルなデバッグ: プログラムの実行中に変数の値をビジュアルに確認でき、変数の内容やプログラムの状態を容易に把握できます。
- ブレークポイント: コード内にブレークポイントを設定し、プログラムの特定のポイントで一時停止できます。これにより、特定のコードを詳細に把握できます。
- ステップ実行: プログラムをステップ実行して、一つずつコードラインを進めたり、関数内に入ったり、抜けたりできます。これにより、プログラムの実行フローを細かく制御、観察できます。
- ウォッチウィンドウ: 変数の値をウォッチウィンドウに登録し、リアルタイムで監視できます。変数の値が変わったときに通知を受け取ることも可能です。
- エラー特定: プログラムが停止した場所やエラーメッセージを表示し、問題の特定とデバッグを容易にします。
- デバッグコンソール: デバッグコンソールを使用して、コード内でprint文を挿入せずに変数や式の評価結果を表示できます。いわゆるprint debugging相当の機能らしい、WATCHと何が違うのかな?
デバッグの開始
デバッグを開始するにはサイドバーにあるデバッグボタンを押下しします。
”Run & Debug”でエディタ部分でアクティブになっているコードが実行され、デバッグが開始されます。
ブレークポイントの設定
止めたいところの行番号の左側をクリックします。赤い丸いしるしがBreakpointとして表示されます。
Run & Debbugを押して、コードを実行するとこのBreakpointの部分でプログラムは停止します。
ステップ実行
Debugを実行するとコードを表示しているエディタの上部に次のようなアイコンが現れます。
左のボタンから説明すると
- 続行ボタン、プログラムの実行を再開します。F5が割り当てられています。
- ステップオーバーボタン、1行毎に実行して止まります。関数門司港されます。F10が割り当てられています。
- ステップインボタン、現在の行を実行するが、その行が関数の場合はその関数の先頭行に飛んで、中断します。F11が割当。
- ステップアウトボタン、現在行が関数の場合、関数を実行して、呼び出し元に実行が戻った状態で中断します。Shift+F11が割当。
- 再起動ボタン、再起動。Ctrl+Shift+F5が割当。
- 停止ボタン、実行終了。Shift+F5キーが割当。
これらの制御ボタンを駆使してプログラムをステップ実行し、問題を発見します。
ウォッチウィンドウ
変数の上にマウスカーソルを近づけるとその変数の値をホバー表示します。
スクリーンショット時にマウスカーソルが消えてしまいましたが、変数min上にマウスカーソルはありました。
変数を右クリックして、メニューから”Add to Watch”を選択して、サイドバーにあるWATCHに登録すると変数の内容が表示されます。
まとめ
Debug consolとかもあるけど、WATCHとの差別化が良くわからないし、表示内容を更新してくれないので、Print Debuggingの代わりになるかな?