LoginSignup
9

More than 5 years have passed since last update.

ラズパイにmonoをインストールしてVisual Studio 2017からC#アプリをリモートデバッグする

Posted at

Raspberry Pi 3にmonoをインストールするとC#アプリケーションを実行できますが、開発中には実機で起動しているC#アプリをリモートデバッグしたいのが人情だと思います。実は、monoにはリモートデバッグのツールがあって簡単にリモートデバッグを実現することができます。

Monoのインストール

Monoは、apt-getで最新モジュールを取得できるようになりましたが、そのためにはapt-getのリポジトリにMonoのプロジェクトを登録しておく必要があります。なお、--recv-keysにセットするキーはこちらのサイトを参照して下さい。

#以下の依存関係をインストールする
sudo -E apt-get install dirmngr

#以下のコマンドでキーを更新します(プロキシ経由でなければhttp-proxyパラメータは不要です)
sudo -E apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --keyserver-option http-proxy=YOUR_PROXY_SERVER:PORT --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF

#以下のコマンドで、apt-getリポジトリにMonoのリポジトリを追加します
echo "deb http://download.mono-project.com/repo/debian raspbianstretch main" | sudo tee /etc/apt/sources.list.d/mono-official.list

#リポジトリのリストを更新します
sudo -E apt-get update

#以下のコマンドでMonoをインストールします
sudo -E apt-get install mono-complete
sudo -E apt-get install mono-dbg

Monoリモートデバッガのインストール

リモートのVisual Studioから、デバッグを実行するためにラズパイ上にMonoのリモートデバッガをインストールします。

#https://github.com/techl/MonoRemoteDebugger から最新版をダウンロード
#ダウンロードファイルをscpで/home/YOUR_USER_NAMEにアップロード
#sshでunzip –d debug MonoRemoteDebugger.Server.zipを実行
#mono MonoRemoteDebugger.Server.exeを実行 → リモートデバッガがLinuxマシン上で起動する。

リモートデバッグを実行すると、/home/YOUR_USER_NAME/debug配下にGUIDをもつディレクトリが作成されます。Visual Studioのbin/Debugに配置されていた実行モジュールがこちらにコピーされ、そこをカレントディレクトリとしてデバッグが実行されます。このGUIDはデバッグ起動のたびに変わるため、適当なタイミングでdebugディレクトリ配下のファイルを削除してください。

少し挙動不審なところもありますが、まぁ普通にデバッグできます。ただし、マルチスレッド部分おデバッグは期待しないで下さい。途中でブレイクしてステップ実行などは期待通りに動きません。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9