プログラミングGeekなブログ。

日々プログラミングしていて気づいたことのメモ。たまに音楽など。

Visual Studio CodeでC/C++のデバッグ on Mac

MacVisual Studio CodeでC++のコードをデバッグできるようにします。

Visual Studio CodeでC/C++コンパイルをするまで

今回ビルドするC++コードのサンプルはこちら↓

// main.cpp
#include <iostream>

int main() {
  for (auto i : {2, 4, 5}) {
    std::cout << i << std::endl;
  }
  return 0;
}

ターミナルでビルドすると次のようになります。

$ clang++ -std=c++11 main.cpp
$ ./a.out
2
4
5

これをVisual Studio Codeでビルドしてみます。

  1. 拡張機能でcpptoolsを検索して、インストール&有効に f:id:cindy-bass:20161101060451p:plain

  2. tasks.jsonの生成

    1. C/C++のソースのあるディレクトリに移動
    2. コマンドパレットで、Tasks: Configure Task Runner > Othersを選択すると、tasks.jsonが生成される
    3. tasks.jsonの編集
      commandはclang++、argsはcppファイル名とコンパイルオプションを設定:
{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "0.1.0",
    "command": "clang++",
    "isShellCommand": true,
    "args": [
        "main.cpp",
        "-g",
        "-std=c++11"],
    "showOutput": "always"
}

これでビルドができるようになりました。Command+Shift+Bでビルドを実行すると、a.out(とa.out.dSYM)が生成されます。

デバッグ

  1. launch.jsonの生成
    1. ビューバーのデバッグ > 設定をクリックすると、ドロップダウンメニューが表示されるので、C++ (GDB/LLDB)を選択
      f:id:cindy-bass:20161101061249p:plain
    2. launch.jsonの編集 programを実行ファイル名を指定("program": "{workspaceRoot}/a.out")
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "C++ Launch",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceRoot}/a.out",
            "args": [],
            "stopAtEntry": false,
            〜省略〜

最低限の設定はこれで完了です。 あとはブレークポイントやウォッチを設定するなりして、Visual Studioと 同様のデバッグができるようになります。 f:id:cindy-bass:20161101061336p:plain