Raspberry Pi & Python 開発ブログ ☆彡

Raspberry PiとPythonの基本的な使い方をわかりやすく解説。初心者、入門者必見!!

Pythonコードのリモートデバック方法 (Visual Studio 2015) (その2)

前回はリモートデバックについて、途中まで記載しました。今回はリモートデバックの手順について最後まで記載しようと思います。

 

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のメニュー⇒ツール⇒オプションをクリックし、オプションウインドウを開きます。

f:id:raspberrypi:20160903155259j:plain

左側の項目の"プロジェクトおよびソリューション"のツリーから"全般"を選択します。右側の一番上の"プロジェクトの場所"のパスを"\\RASPBERRYPI\pi\workspace"にすることで、プロジェクトの保存先が変更できます。

f:id:raspberrypi:20160903155331j:plain

 

Raspberry PiPythonコードの実行

上記でRaspberry Piにコピーしたxxx.pyを実行します。

sudo python /home/pi/workspace/xxx.py

実行するとコンソールに"ここでアタッチを待ちます"と表示されるので、今度はVisual Studioを操作します。

 

Visual Studioでリモートデバック

Visual Studioソースコードを開き、ブレークポイントを設定します。動作確認ですので、最終行にブレークポイントを設定しました。その後、Visual Studioのメニュー⇒デバック⇒プロセスにアタッチをクリックします。

f:id:raspberrypi:20160903155456j:plain

 

表示されるウインドウで下記の設定をします。

・トランスポート ⇒ Python remote(ptvsd)

・修飾子 ⇒ test@[RaspberryPiのIPアドレス] 

修飾子の"test"の文字ですが、ソースコード

ptvsd.enable_attach(secret = 'test') のsecret = xxx の  xxxの文字を記載します。

右下の更新ボタンを押すと"選択可能なプロセス欄"にpythonのプロセスが表示されるので、選択しアタッチボタンをクリックします。

f:id:raspberrypi:20160903155544j:plain


ブレークポイントの場所でストップし、sum変数の中身やスタックトレースが表示されれば、成功です。

f:id:raspberrypi:20160903155634j:plain

 

以前記載したUARTでデバックログを表示する方法と今回のリモートデバックはうまくコードが動作しない時の解析に非常に有効な手段です。