リモート講義 macOS VSCode - eiichiromomma/CVMLAB GitHub Wiki

(リモート講義) macOS VSCode

ごった煮フォルダでデバッグをする方法.

VSCodeでデバッグ

  1. 適当な名前のフォルダを作る(そこにC言語のソースファイルを置く)
  2. VSCodeを起動し,「フォルダを開く」で1のフォルダを指定する
  3. C言語のファイルを開いた状態で「ターミナル」「既定のビルドタスクの構成...」を選ぶと,画面上部に「C/C++:gcc アクティブなファイルのビルド コンパイラ:/usr/bin/gcc」と出るのでそれを選び,tasks.jsonを下の項の通り編集して保存
  4. C言語のファイルを開いた状態で「実行」「構成の追加...」を選ぶ。 上に一覧が出たら「C/C++:(lldb)起動」を選び,launch.jsonを下の項の通り編集して保存

tasks.jsonの編集

  • "args"の"${file}"を"${relativeFile}"にする
  • "options"の"cwd"を"${workspaceFolder}"にする
{
    "version": "2.0.0",
    "tasks": [
        {
            "type": "cppbuild",
            "label": "C/C++: gcc アクティブなファイルのビルド",
            "command": "/usr/bin/gcc",
            "args": [
                "-fcolor-diagnostics",
                "-fansi-escape-codes",
                "-g",
                "${relativeFile}",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}"
            ],
            "options": {
                "cwd": "${workspaceFolder}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": "build",
            "detail": "コンパイラ: /usr/bin/gcc"
        },
    ]
}

launch.json

CodeLLDB

VSCodeの拡張機能で入れておくと,integrated terminalでscanfに対してstdinが受け付けられる

{
    // IntelliSense を使用して利用可能な属性を学べます。
    // 既存の属性の説明をホバーして表示します。
    // 詳細情報は次を確認してください: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "type": "lldb",
            "request": "launch",
            "name": "Launch",
            "program": "${fileDirname}/${fileBasenameNoExtension}",
            "args": [],
            "cwd": "${workspaceFolder}",
            "preLaunchTask": "C/C++: gcc アクティブなファイルのビルド"
        }
    ]
}

stdinが使えないので外部ターミナル

miDebuggerPathやsetupCommandsがあるとコケるらしいので,それを削ったもの.

VSCode上のintegrated terminalでstdinが使えないので外部ターミナルが開くCygwinと同じ使い方

{
    // IntelliSense を使用して利用可能な属性を学べます。
    // 既存の属性の説明をホバーして表示します。
    // 詳細情報は次を確認してください: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(lldb) 起動",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}/${fileBasenameNoExtension}",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": true,
            "MIMode": "lldb",
            "preLaunchTask": "C/C++: gcc アクティブなファイルのビルド"

        }
    ]
}