Linuxで実行されているC#コンソールアプリケーションをVisual Studioからリモートデバッグしたいと思います。ここに私がこれまでに見つけたものがあります:
http://www.mono-project.com/Debugger
Monoランタイムは、デバッガーやIDEがマネージコードをデバッグできるようにするデバッグインターフェイスを実装しています。これはソフトデバッガーと呼ばれ、MonoDevelop、Xamarin Studio、Visual Studio(適切なプラグインがインストールされている場合)、およびコマンドラインSDBクライアントの両方でサポートされています。
Monoは、デバッガーと通信し、Mono.Debugger.Soft.dllアセンブリを介して独自のデバッグUIを作成するためのAPIを提供します。
以下のページでは、現在のMonoVSデバッガー実装のいくつかの問題について説明していますが、すべて問題ありません。
http://mono-project.com/Visual_Studio_Integration
このページは、MonoVSのスタートガイドにもリンクしています。
http://mono-project.com/GettingStartedWithMonoVS
MonoToolsのダウンロードリンクが含まれています。
http://mono-tools.com/download/
ただし、ダウンロードリンクは次の場所にリダイレクトされます。
Xamarin Studio Starter Editionのダウンロードが提供されている場所。 [価格]リンクをクリックすると、少なくともVisual Studio SupportのBusinessエディション(年間999ドル)が必要であることがわかります。まあ、ありがとう。
これは私が行き詰まっているところです。私の環境のいくつかの詳細:
開発環境:
対象環境:
私はそれが古いスレッドであることを知っていますが、誰か(私のような)がまだその解決策を見つけていない場合に備えて、今日の検索中に、魅力的なように機能するこのVisual Studio 2015拡張機能を見つけました: MonoRemoteDebugger for Visual Studio 2015
VS2015 update2でのXamarin VS拡張との競合を修正するには、 MonoRemoteDebugger v1.0.4 を参照してください。
お役に立てば幸いです。
幸せなデバッグをして、開発者に感謝します! :)
このガイド iOSとAndroid開発を除いて現在無料のXamarin Studioを使用して、WindowsからLinuxでリモートデバッグを実行する方法を説明しています。 Raspbian Jessie Lite(2017-04-10)を実行しているRaspberry Pi Zero Wでテスト中に発生した問題の修正を加えて拡張しました。
MONODEVELOP_SDB_TEST = 1
を作成します(マイコンピュータ->プロパティ->システムの詳細設定->環境変数)。%localappdata%\XamarinStudio-6.0\Logs
フォルダー内のログファイルをチェックして、何が失敗したかを確認してください。PdbDebugException: Unknown custom metadata item kind: 6
)によってビルドされたアセンブリでは機能しないようです。pdb2mdb MyProgram.exe
Sudo apt-get install mono-complete
。mono --debug --debugger-agent=transport=dt_socket,address=0.0.0.0:12345,server=y /path/to/MyProgram.exe
。これによりプログラムが起動しますが、Xamarin Studioデバッガーが接続するまで実行が停止します。Run -> Run with -> Custom Configuration...
を選択して、Run Action = Debug - Custom Command Mono Soft Debugger
を選択します。 Debug
をクリックします。IP
およびPort
フィールドに、Monoコマンドラインで指定したLinuxシステムのIPアドレスとポート12345を入力します。 Connect
をクリックすると、実行が開始され、設定されたブレークポイントで停止します。条件付きブレークポイントの設定、コードのステップイン/ステップアウト/オーバー、プリミティブとオブジェクトの監視などが可能で、非常に高速です。 Visual Studioから直接デバッグしたいのですが、これは完全に機能するソリューションのようです。
Raspbian Jessie Lite(2017-04-10)を実行しているRaspberry Pi Zero WでVS2015を使用して Gutemberg Ribeiroの回答 に基づいて構築し、 MonoRemoteDebugger を取得できました。コツは、3.2.8以降のMonoバージョンをインストールすることでした。
Sudo apt-get purge mono-complete
Sudo apt-get autoremove
Sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
echo "deb http://plugwash.raspbian.org/mono4 jessie-mono4 main" | Sudo tee -a /etc/apt/sources.list
Sudo apt-get update
Sudo apt-get install mono-complete
wget https://github.com/techl/MonoRemoteDebugger/releases/download/v1.2.0/MonoRemoteDebugger.Server.Zip
unzip -d MonoRemoteDebugger.Server MonoRemoteDebugger.Server.Zip
mono MonoRemoteDebugger.Server/MonoRemoteDebugger.Server.exe
MonoRemoteDebugger -> Debug with Mono (remote)
を選択します。正直なところ、デバッグ機能はかなり制限されています。単純なブレークポイントとコードのステップイン/アウト/オーバーは、いくらかうまくいくようです。関数にブレークポイントを設定し、その関数呼び出しをステップオーバーしても、ブレークポイントで停止しません。
プリミティブタイプは監視できますが、監視しようとしたオブジェクトは表示できません。呼び出しスタックビューはかなり制限されており、スレッドビューは空です。例外はキャッチされませんが、MonoRemoteDebuggerServerから「[ERROR] FATAL UNHANDLED EXCEPTION」メッセージが表示されます。ただし、これらの制限に対処できる場合、セットアップは Xamarin Studio route よりも簡単です。
Xamarin Studio/MonoDevelopのプラグインがあります
必要なソリューションは今年 MonoDebugger.NET で提供されます。開発者は、任意のMonoデバイスに展開してVisual Studio内でデバッグできることを「約束」します(2010〜2015)。