JetBrains Rider 2026.1 Help

Mono を使用したリモートデバッグ

Mono を使用して Mac または Linux で .NET アプリを実行すると、アプリケーションの動作に違いが見られたり、Windows マシンで同じアプリを実行したときには再現されない奇妙な例外が発生したりすることがあります。 このような場合に、リモートデバッグが役立ちます。

デバッグ情報

デバッグモードでプロジェクトをビルドすると、MSBuild は基本的にコンパイルされたアセンブリのバイナリコードをソースコードにリンクするデバッグ情報を含む PDB ファイルを生成します。 Mono のバージョンによって、異なる PDB が必要になります:

  • バージョン 5.x はポータブル PDB 形式をサポートしているため、プロジェクトがポータブル PDB でビルドされていることを確認してください。

    これを行うには、プロジェクトを右クリックして プロパティ を選択し、開いたダイアログでビルド構成を選択し、 デバッグタイプ セレクターで ポータブル を選択します。

  • 以前のバージョンでは、 .mdb 形式のデバッグ情報が必要です。

    pdb2mdb ツール(英語)を使用して、 .pdb .mdb に変換できます。

ただし、JetBrains Rider では 外部コードのデバッグが有効化されているため、JetBrains Rider 設定 の ビルド、実行、デプロイ | デバッガー ページで 外部ソースデバッグを有効化 Ctrl+Alt+S が選択されている場合(これはデフォルトです)、デバッグ情報がなくてもリモート Mono アプリをデバッグできます。

デバッグオプション

JetBrains Rider でアプリケーションのソースコードを開き、そのバイナリ実行可能ファイルまたはアセンブリをリモートマシンへコピーすると、アプリのデバッグを開始できます。

まず、 Mono リモート型の 実行 / デバッグ構成を作成します。 設定オプションでは、リモートアプリケーションへの接続方法に応じて、接続のホストとポートを指定する必要があります。

  • リモートアプリは、デバッグエージェント(server=y フラグ付き)を備えたサーバーとして機能します。

    この場合、最初にリモートマシンでアプリを起動し、次にこの実行 / デバッグ構成を起動してアプリに接続します。 リモートマシンのコマンドラインパラメーターの例を次に示します。

    mono --debugger-agent=address=X.X.X.X:12345,server=y,transport=dt_socket --debug MyDotNet.exe

    ホストポート の値を実行/デバッグ構成で リモートマシン のホスト/ポートとして設定する必要があります。つまり、上記のコマンドラインでリモートアプリを起動する場合、 ホスト フィールドに X.X.X.X を、 ポート フィールドに 1234 を指定してください。

  • リモートアプリはクライアントとして動作し、JetBrains Rider は Mono デバッガーサーバーとして動作するため、まずこの実行 / デバッグ構成を開始し、リモート Mono アプリケーションがデバッガーにアクティブに接続するのを待つことができます。

    例: アプリケーションの起動をデバッグする場合は、この方法でリモート Mono アプリケーションに接続できます。 リモートマシンのコマンドラインパラメーターの例を次に示します。

    mono --debugger-agent=address=Y.Y.Y.Y:34567,server=n,transport=dt_socket --debug MyDotNet.exe

    この場合、 ホストポート の値を JetBrains Rider が実行されているマシン のホスト/ポートとして設定する必要があります。つまり、上記のコマンドラインでリモートアプリを起動する場合、 ホスト フィールドに Y.Y.Y.Y を、 ポート フィールドに 34567 を指定してください。

デフォルトでは、この実行 / デバッグ構成は Mono デバッガークライアントを起動します。 サーバーとして動作させるには、 受信接続を聞く チェックボックスを選択します。

2026 年 6 月 12 日