メインメニューを開く

MonoDevelopで.NET Coreのデバッグ実行をできるようにする

目次

問題点編集

WindowsVisual StudiomacOSVisual Studio for Macは標準で.NET Coreデバッグができるが、LinuxMonoDevelopマイクロソフト製のデバッガーは用意されておらず標準ではデバッグ実行ができない。デバッグ実行をしても通常実行となりブレークポイントなどは無視される。

解決策編集

サムスンVisual Studio Code用として開発した「Debugger for .NET Core (netcoredbg)」と MonoDevelop拡張機能を入れることでLinux上のMonoDevelopでもデバッグできるようになる。

備考編集

以下はUbuntu 20.04 LTSで構築した事例である。 CentOSなどでも同じだと思うが試してはいない。

netcoredbgを入れる編集

MonoDevelopの中の人がバイナリを提供してくれているので、 netcoredbgのzipファイルダウンロードしてホームディレクトリ直下あたりに展開しておく。

ソースから自分でビルドしたいやつはこっち。

netcoredbgを展開したらターミナルから叩いてみて正常に動くかを確認する。

~/netcoredbg.linux/netcoredbg --help

.NET Core Debugger support 拡張機能を入れる編集

MonoDevelopにnetcoredbgを叩く拡張機能を入れる。

Samsung .NET Core Debugger support拡張(mpackファイル)をダウンロードする。 ダウンロードページには複数バージョンがあるのでMonoDevelopのバージョンに合わせること。 MonoDevelop 7.xに8.x系の拡張をいれても動かない。

MonoDevelopの拡張機能マネージャー(メインメニューの「ツール」「拡張機能」)を開き、 ダイアログの下部にある「ファイルからインストール」を選び、 先程ダウンロードしたmpackファイルをインストールする。

インストールが完了すると、「インストール済み」「Debugging」に「.NET Core support for Mono.Debugging」が追加される。

  • アイコンが緑色なら正常にインストールされている。
  • アイコンが灰色なら異常。たぶんmpackファイルとmonodevelopのバージョンが食い違っている。

.NET Core Debugger support の設定をする編集

MonoDevelopのユーザー設定(メインメニューの「編集」「ユーザー設定」)を開くと 「プロジェクト」に「.NET Core Debuggers」が追加されているはずなので、 その中の「場所」の欄にnetcoredbgのフルパスを指定する。

「見つかりました」となればすべて完了だ。

試してみる編集

.NET Core コンソールアプリケーションでも作ってMain直下あったりにブレークポイントを仕掛けてデバッグ実行してみろ。