やること
ubuntu環境をdockerで構築し、VisualStudio2017からリモートデバッグを行います。
リモートデバッグを行うコンテナを用意
dockerfile
FROM ubuntu:16.04
# 各種インストール
RUN apt-get update
RUN apt-get install -y openssh-server sudo bash-completion g++ gdb gdbserver rsync git
# SSH用のディレクトリ作成
RUN mkdir /run/sshd
# ユーザーを追加
RUN useradd -m -s /bin/bash ubuntu && gpasswd -a ubuntu sudo
# パスワードを設定
RUN echo 'ubuntu:ubuntu' | chpasswd
# 22番ポートを公開
EXPOSE 22
CMD ["/usr/sbin/sshd", "-D"]
docker-compose
version: '2.3'
services:
dev:
build: .
ports:
- "2222:22"
volumes:
- ../volume:/tmp/data
イメージをビルド/コンテナを起動
$ docker-compose build
$ docker-compose up -d
SSH
$ docker exec -it docker_dev bash
VisualStudio
デバッグを行うプロジェクトを用意
- 新規作成 > Visual C++ > クロスプラットフォーム > Linux
- ない場合はインストーラから「C++によるLinux開発」を選択し、インストール
VisualStudio側の設定
- 接続先の指定
- ツール > オプション > クロスプラットフォーム > 接続マネージャー > 追加
- ホスト名:リモート先のIP(localhost)
- ポート:22番ポートにマッピングされているポート(2222)
- ユーザー名:ゲストOSのユーザー名(ubuntu)
- 認証の種類:パスワード
- パスワード:上記で設定したパスワード(ubuntu)
- ツール > オプション > クロスプラットフォーム > 接続マネージャー > 追加
()は上記で設定した場合の値
デバッグ
- ソリューションのリビルドを実行
- ビルド > ソリューションのリビルド
- Linuxコンソールの表示
- デバッグ > linux コンソール