Visual Studio Code

Visual Studio Code とC/C++ 拡張をUbuntu 14.04 にインストールして、C/C++ のHelloWorld をデバッガでステップ実行してみました。

Ubuntu Make 用PPA の追加

Ubuntu 14.04 の場合はPPA を追加します。Ubuntu 16.04 の場合は不要です。

$ sudo add-apt-repository ppa:ubuntu-desktop/ubuntu-make
$ sudo apt-get update

Ubuntu Make のインストール

$ sudo apt-get install ubuntu-make

Visual Studio Code のインストール

$ umake ide visual-studio-code

デフォルトでは、~/.local/share/umake/ide/visual-studio-code/ にインストールされます。

Visual Studio Code の起動

[プログラミング]-[Visual Studio Code] メニューを選択

C/C++ 拡張のインストール

  1. [View]-[Command Palette] を選択
  2. ext install cpptools を入力
  3. ダウンロードアイコンをクリックしてインストール
  4. Restart Now ボタンを押下
  5. C++ デバッガの依存パッケージが更新され完了です。

拡張は~/.vscode/extensions/ms-vscode.cpptools-0.4.2にインストールされました。

サンプルソースの作成

[File]-[Open Folder]メニュー選択後、ダイアログでプロジェクト用のフォルダーtestを作成しました。
以下のファイルを追加します。

~/test/test.c
#include <stdio.h>

int main(void)
{
printf("Hello, world!\n");
return 0;
}

インクルードパスの設定

#include 文の下に警告マークが表示されるので、クリックすると以下のファイルが作成されます。

~/test/.vscode/c_cpp_properties.json
{
"configurations": [
{
"name": "Mac",
"includePath": ["/usr/include"]
},
{
"name": "Linux",
"includePath": ["/usr/include"]
},
{
"name": "Win32",
"includePath": ["c:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include"]
}
]
}

ビルドタスクの設定

https://code.visualstudio.com/Docs/editor/tasks#_defining-a-problem-matcher

~/test/.vscode/tasks.json
{
"version": "0.1.0",
"command": "gcc",
"args": ["-Wall", "-g", "-O0", "test.c"],
"problemMatcher": {
"owner": "c",
"fileLocation": ["relative", "${workspaceRoot}"],
"pattern": {
"regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
"file": 1,
"line": 2,
"column": 3,
"severity": 4,
"message": 5
}
}
}

F1でコマンドパレットを表示し、>buildと入力すると、Tasks: Run Build Task という候補がでるので、実行する。

デバッガ起動の設定

~/test/.vscode/launch.json
{
"version": "0.2.0",
"configurations": [
{
"name": "C++ Launch (GDB)",
"type": "cppdbg",
"request": "launch",
"launchOptionType": "Local",
"miDebuggerPath": "/usr/bin/gdb",
"targetArchitecture": "x64",
"program": "${workspaceRoot}/a.out",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceRoot}",
"environment": []
},
{
"name": "C++ Attach (GDB)",
"type": "cppdbg",
"request": "launch",
"launchOptionType": "Local",
"miDebuggerPath": "/usr/bin/gdb",
"targetArchitecture": "x64",
"program": "${workspaceRoot}/a.out",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceRoot}",
"environment": [],
"processId": 100000
}
]
}

左のツールバーの4番めのデバッグアイコンをクリックして、▶ボタンを押すとデバッガが起動します。
ソースコード上でF9押下でブレークポイントの設定/解除ができます。


ここからはUbuntu 16.04 へのインストールの試行メモです。

C/C++ 拡張のインストール

Ubuntu 14.04 以外のUbutu のバージョンの場合は手動でインストールします。
https://github.com/dotnet/cli/#user-content-ubuntu-installers

  1. Gdebi のインストール
    $ sudo apt-get install gdebi
  2. dotnet の依存するlibicu52 をダウンロード
    $ wget http://security.ubuntu.com/ubuntu/pool/main/i/icu/libicu52_52.1-8ubuntu0.2_amd64.deb
  3. dotnet-cli のDEB パッケージをダウンロードします。
    • Shared Host
    • Shared Framework
    • Sdk
  4. DEB パッケージをインストールします。
    $ sudo gdebi *.deb
  5. 設定
    $ cd ~/.vscode/extensions/ms-vscode.cpptools-0.4.2
    $ dotnet restore --configfile NuGet.Config --infer-runtimes
    $ dotnet publish -o debugAdapters
    $ touch debugAdapters/coreclr.lock.0.1.0
  6. coreclr のインストール
    https://github.com/dotnet/coreclr#user-content-build-status
    https://github.com/dotnet/coreclr/blob/master/Documentation/building/linux-instructions.md
    $ sudo apt-get install cmake llvm-3.5 clang-3.5 lldb-3.6 lldb-3.6-dev libunwind8 libunwind8-dev gettext libicu-dev liblttng-ust-dev libcurl4-openssl-dev libssl-dev uuid-dev
    $ git clone https://github.com/dotnet/coreclr
    $ cd coreclr
    $ ./build.sh

起動アイコンの作成

起動アイコンが作成されなかったら、以下のファイルを手動で作成します。

~/.local/share/applications/visual-studio-code.desktop
[Desktop Entry]
Version=1.0
Type=Application
Name=Visual Studio Code
Icon=/home/<Your Name>/.local/share/umake/ide/visual-studio-code/resources/app/resources/linux/code.png
Exec=/home/<Your Name>/.local/share/umake/ide/visual-studio-code/code
Comment=Visual Studio focused on modern web and cloud
Categories=Development;IDE;
Terminal=false