「設定 - リモートデバッグ」の版間の差分

ナビゲーションに移動 検索に移動
編集の要約なし
(Wiki がページ「Visual Studio 2017でLinux開発」を「設定 - リモートデバッグ」に、リダイレクトを残さずに移動しました)
編集の要約なし
1行目: 1行目:
== 概要 ==
== 概要 ==
ここでは、VMware WorkStation Proを使用してCentOS 7をゲストOSとして構築している。<br>
Visual Studio 2017以降では、Linuxで実行されている.NET CoreプロセスにSSH経由でアタッチできる。<br>
ここでは、デバッグのセットアップ方法とデバッグ方法について記載する。<br>
<br>
また、リモートマシンにおいて、CentOSとSUSEを使用している。<br>
<br><br>
<br><br>


== ゲストOSを設定する ==
== リモートマシンの設定 ==
===== GDBとGDB Serverをインストールする =====
===== GDBとGDB Serverのインストール =====
Visual Studio 2017からデバッグが出来るようにゲストOS(CentOS 7)にGDBとGDB Serverを以下のコマンドを入力してインストールする。<br>
Visual Studioからリモートデバッグができるように、CentOSまたはSUSEに必要なソフトウェアやライブラリをインストールする。<br>
  sudo yum install gdb
# CentOS 7
  sudo yum install gdb-gdbserver
  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>
===== SSHサーバを設定する =====
SSHサーバは、CentOS 7をMinimal Installした場合でも、標準でOpenSSHがインストールされるため、追加インストールする必要はない。<br>
また、標準で自動起動設定になっているため、パスワード認証方式でのログインが可能となっている。<br>
したがって、最低限必要な設定としては、セキュリティを考慮して、以下のようにrootアカウントの直接ログインの禁止設定を実施しておけばよい。<br>
したがって、最低限必要な設定としては、セキュリティを考慮して、以下のようにrootアカウントの直接ログインの禁止設定を実施しておけばよい。<br>
  sudo gedit /etc/ssh/sshd_config
  sudo vi /etc/ssh/sshd_config
  PermitRootLogin no  #38行目(rootログイン禁止)
# /etc/ssh/sshd_configファイル
  PermitRootLogin no  # 38行目
<br>
<br>
設定を反映させるため、sshdを再起動する。<br>
設定を反映させるため、sshdを再起動する。<br>
  sudo systemctl restart sshd
  sudo systemctl restart sshd
<br>
<br>
Firewalldを有効にしている場合は、SSHサービスの許可が必要である。なお、このページでは、SSHは22/TCPを使用する。<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アドレス(例 : 192.168.111.5)
  Host Name : ホスト名またはIPアドレス
  Port : 22(固定)
  Port : 22
  User Name : CentOSで使用しているユーザ名(例 : centos)
  User Name : CentOSまたはSUSEで使用しているユーザ名
  Password : CentOSで使用しているユーザ名のパスワード
  Password : CentOSまたはSUSEで使用しているユーザ名のパスワード
<br>
<br>
※次回からは入力しなくてもこの設定で自動的に接続される。<br>
<u>※注意</u><br>
※上記の接続先の設定において、Visual Studio 2017の[ツール]メニュー - [オプション] - [クロスプラットフォーム]からコネクションマネージャーで再設定できる。<br>
<u>次回からは、自動的にリモート接続される。</u><br>
<u>リモート接続の再設定は、Visual Studioの[ツール]メニュー - [オプション] - [クロスプラットフォーム]からコネクションマネージャーで再設定できる。</u><br>
<br><br>
<br><br>


== 実行 ==
== リモートデバッグの実行 ==
実行する前に[デバッグ]メニューからLinux Consoleウインドウを表示する。<br>
実行する前に、[デバッグ]メニューからLinux Consoleウインドウを表示する。<br>
リモートGDBデバッガーを実行すると実行結果がLinux Consoleウインドウに表示される。<br>
リモートGDBデバッガを実行すると、実行結果がLinux Consoleウインドウに表示される。<br>
<br><br>
<br><br>


== 備考 ==
== 備考 ==
CentOS 7のホームディレクトリ下にprojectsディレクトリが作成されて、そこにプロジェクトが配置される。<br>
CentOSまたはSUSEのホームディレクトリ直下にprojectsディレクトリが作成されて、そこにプロジェクトが配置される。<br>
<br><br>
<br><br>


案内メニュー