前回はリモートデバックについて、途中まで記載しました。今回はリモートデバックの手順について最後まで記載しようと思います。
Visual Studioで作成したソースコードをRaspberry Piにコピー
まず前回作成したpythonコード(xxx.py)とプロジェクトファイル(xxx.pyproj)をRaspberry Piにコピーします。コピー場所はどこでも構いませんが、/home/pi/workspaceというフォルダに保存しました。以前、Sambaについて記載しましたが、Samba設定がしてあれば、ネットワーク経由でWindowsからRaspberry Piにファイルのコピーができると思います。
workspaceフォルダには書き込みの権限を付与することをお忘れなく。
毎回、ネットワーク経由でWindowsからRaspberry Piにソースコードをコピーするのは面倒なので、Visual Studioでプロジェクトの保存先をRaspberry Piの/home/pi/workspaceに変更してしまうと楽です。
Visual Studioのメニュー⇒ツール⇒オプションをクリックし、オプションウインドウを開きます。
左側の項目の"プロジェクトおよびソリューション"のツリーから"全般"を選択します。右側の一番上の"プロジェクトの場所"のパスを"\\RASPBERRYPI\pi\workspace"にすることで、プロジェクトの保存先が変更できます。
Raspberry PiでPythonコードの実行
上記でRaspberry Piにコピーしたxxx.pyを実行します。
sudo python /home/pi/workspace/xxx.py
実行するとコンソールに"ここでアタッチを待ちます"と表示されるので、今度はVisual Studioを操作します。
Visual Studioでリモートデバック
Visual Studioでソースコードを開き、ブレークポイントを設定します。動作確認ですので、最終行にブレークポイントを設定しました。その後、Visual Studioのメニュー⇒デバック⇒プロセスにアタッチをクリックします。
表示されるウインドウで下記の設定をします。
・トランスポート ⇒ Python remote(ptvsd)
・修飾子 ⇒ test@[RaspberryPiのIPアドレス]
修飾子の"test"の文字ですが、ソースコードの
ptvsd.enable_attach(secret = 'test') のsecret = xxx の xxxの文字を記載します。
右下の更新ボタンを押すと"選択可能なプロセス欄"にpythonのプロセスが表示されるので、選択しアタッチボタンをクリックします。
ブレークポイントの場所でストップし、sum変数の中身やスタックトレースが表示されれば、成功です。
以前記載したUARTでデバックログを表示する方法と今回のリモートデバックはうまくコードが動作しない時の解析に非常に有効な手段です。