12,925
回編集
細 (Wiki がページ「Visual Studio 2017でLinux開発」を「設定 - リモートデバッグ」に、リダイレクトを残さずに移動しました) |
編集の要約なし |
||
1行目: | 1行目: | ||
== 概要 == | == 概要 == | ||
Visual Studio 2017以降では、Linuxで実行されている.NET CoreプロセスにSSH経由でアタッチできる。<br> | |||
ここでは、デバッグのセットアップ方法とデバッグ方法について記載する。<br> | |||
<br> | |||
また、リモートマシンにおいて、CentOSとSUSEを使用している。<br> | |||
<br><br> | <br><br> | ||
== | == リモートマシンの設定 == | ||
===== GDBとGDB | ===== GDBとGDB Serverのインストール ===== | ||
Visual | Visual Studioからリモートデバッグができるように、CentOSまたはSUSEに必要なソフトウェアやライブラリをインストールする。<br> | ||
sudo yum install gdb | # CentOS 7 | ||
sudo | sudo yum install gcc rsync gdb gdb-gdbserver unzip curl | ||
# CentOS 8 | |||
sudo dnf install gcc rsync gdb gdb-gdbserver unzip curl | |||
# SUSE | |||
sudo zypper install gcc rsync gdb gdb-gdbserver unzip curl | |||
<br> | |||
Visual Studio 2019を使用している場合は、以下のライブラリもインストールする。<br> | |||
# CentOS 7 | |||
sudo yum install ninja-build | |||
# CentOS 8 | |||
sudo dnf install ninja-build | |||
# SUSE | |||
sudo zypper install ninja-build | |||
<br> | |||
===== SSHサーバの設定 ===== | |||
SSHサーバは、CentOSやSUSEを最小インストールした場合でもOpenSSHがインストールされるため、追加でインストールする必要はない。<br> | |||
また、初期設定では、パスワード認証方式でのログインが可能となっている。<br> | |||
<br> | <br> | ||
したがって、最低限必要な設定としては、セキュリティを考慮して、以下のようにrootアカウントの直接ログインの禁止設定を実施しておけばよい。<br> | したがって、最低限必要な設定としては、セキュリティを考慮して、以下のようにrootアカウントの直接ログインの禁止設定を実施しておけばよい。<br> | ||
sudo | sudo vi /etc/ssh/sshd_config | ||
PermitRootLogin no #38行目 | |||
# /etc/ssh/sshd_configファイル | |||
PermitRootLogin no # 38行目 | |||
<br> | <br> | ||
設定を反映させるため、sshdを再起動する。<br> | 設定を反映させるため、sshdを再起動する。<br> | ||
sudo systemctl restart sshd | sudo systemctl restart sshd | ||
<br> | <br> | ||
SSHの自動起動設定を行う。<br> | |||
sudo systemctl enable sshd | |||
<br> | |||
Firewalldを有効にしている場合は、SSHサービスの許可が必要である。<br> | |||
なお、SSHのポート番号は、22/TCPを使用する。<br> | |||
sudo firewall-cmd --add-service=ssh --permanent | sudo firewall-cmd --add-service=ssh --permanent | ||
sudo firewall-cmd --reload | sudo firewall-cmd --reload | ||
<br><br> | <br><br> | ||
== | == Visual Studioの設定 == | ||
==== プロジェクトの新規作成 ==== | |||
[ファイル]メニュー - [新規作成] - [Visual C++] - [クロスプラットフォーム] - [Linux]を展開し、C++によるLinux開発を選択する。<br> | [ファイル]メニュー - [新規作成] - [Visual C++] - [クロスプラットフォーム] - [Linux]を展開し、C++によるLinux開発を選択する。<br> | ||
<br><br> | <br> | ||
==== プロジェクトの全般設定 ==== | |||
== | # [プロジェクト]メニュー - [プロパティ]を選択する。<br>(または、ソリューションエクスプローラーでプロジェクトを右クリックして、コンテキストメニューから[プロパティ]を選択する) | ||
# [プロジェクトのプロパティ]画面が表示されるので、画面左の[全般]を選択して、画面右の[構成の種類]プルダウンから、開発するファイルの種類を選択する。 | |||
# 既定では、実行可能ファイル(.out)が選択されている。<br>もし、スタティックライブラリまたはダイナミックライブラリの開発や既存のMakefileを使用する場合は変更する。 | |||
<br> | |||
==== リモート接続の設定 ==== | |||
接続先のLinuxを指定するダイアログ(Connect to Remote System)が表示されるので次のように入力する。<br> | 接続先のLinuxを指定するダイアログ(Connect to Remote System)が表示されるので次のように入力する。<br> | ||
Host Name : ホスト名またはIPアドレス | Host Name : ホスト名またはIPアドレス | ||
Port : 22 | Port : 22 | ||
User Name : | User Name : CentOSまたはSUSEで使用しているユーザ名 | ||
Password : | Password : CentOSまたはSUSEで使用しているユーザ名のパスワード | ||
<br> | <br> | ||
<u>※注意</u><br> | |||
<u>次回からは、自動的にリモート接続される。</u><br> | |||
<u>リモート接続の再設定は、Visual Studioの[ツール]メニュー - [オプション] - [クロスプラットフォーム]からコネクションマネージャーで再設定できる。</u><br> | |||
<br><br> | <br><br> | ||
== | == リモートデバッグの実行 == | ||
実行する前に、[デバッグ]メニューからLinux Consoleウインドウを表示する。<br> | |||
リモートGDBデバッガを実行すると、実行結果がLinux Consoleウインドウに表示される。<br> | |||
<br><br> | <br><br> | ||
== 備考 == | == 備考 == | ||
CentOSまたはSUSEのホームディレクトリ直下にprojectsディレクトリが作成されて、そこにプロジェクトが配置される。<br> | |||
<br><br> | <br><br> | ||