c-cpp-cookies
  • Полезные материалы
    • About
  • Настройка окружения
    • Git
      • Git CLI
      • Git GUI
      • Git Web
      • Git в среде разработке
        • Visual Studio
        • Visual Studio Code
        • CLion
        • Qt Creator
    • Стандарты (они же ISO)
    • Qt about
    • IDE
      • Visual Studio Code
        • Код в Visual Studio Code
        • Разработка в Visual Studio Code
      • Visual Studio
        • Настройки Visual Studio и проектов
        • Код в Visual Studio
        • Visual Studio + GitHub
      • Qt + Qt Creator
        • Установка Qt и QtCreator
        • Примеры проектов на Qt
      • CLion
        • Настройки CLion
        • Код в CLion
        • CLion + GitHub
    • Компиляторы
      • Clang + Visual Studio
      • Clang + CLion
  • Best practices
    • Антипаттерны и способы улучшения кода
      • 0. Освобождение ресурсов
      • 1. Чтение данных из файла
      • 2. Открытие файлов
      • 3. Объявление переменных
      • 4. Выделение памяти
      • 5. Необдуманный код
      • 6. Глубокие if
      • 7. Длинные if
      • 9. Non-void функции
      • 10. Создание массивов
      • 11. Проверка формата файла
  • Сборка программы
    • Сборка программы
    • Системы сборки / Build systems
      • Проект и решение
      • Make
      • Ninja
      • CMake
      • MSBuild
    • Подключение внешних библиотек
    • Библиотеки
  • Отладка
    • Отладка / Debugging
    • Запуск программы
    • Точки останова / Breakpoints
      • Обычные точки останова / General breakpoint
      • Условные точки останова / Conditional breakpoint
      • Зависимые точки останова / Dependent breakpoint
      • Временные точки останова / Temporary breakpoint
      • Точки трассировки / Breakpoint actions и tracepoints
    • Стек вызовов / Call stack
    • Локальные переменные / Locals
    • Просмотр области памяти / Memory view
    • Исключения / Exceptions
  • Анализ
    • Поиск утечек памяти
    • Санитайзеры
  • Возможности IDE
    • Возможности IDE
    • Продвинутый текстовый редактор
    • Закладки / Bookmarks
    • Платформы / Platforms
    • Конфигурации сборки / Build configurations
    • Шаблонные проекты / Project templates
    • Терминал / Terminal
    • Сборка / Build
    • Запуск программы / Run program
    • Code style
    • Работа с Github Actions
  • Тестирование
    • Тестирование
    • Google test
      • Gtest в VS
      • Gtest в CLion
      • Gtest в VSCode
    • Покрытие кода (code coverage)
Powered by GitBook
On this page
  • Установка
  • Configure
  • Build
  • Test
  • Launch
  • Запуск через CMakeTools
  • Запуск через VSCode Run&Debug
  • Debug
  1. Настройка окружения
  2. IDE
  3. Visual Studio Code

Разработка в Visual Studio Code

PreviousКод в Visual Studio CodeNextVisual Studio

Last updated 1 month ago

На можно посмотреть подраздел для вашей конфигурации (компилятор+ОС).

В данном разделе пойдёт описания использования CMake Tools в VSCode для конфигурации, сборки и отладки кода.

Подробнее про CMake в

Установка

. Для этого расширения может потребоваться установить переменную CMAKE_GENERATOR, подробнее .

После установки расширения слева появится раздел CMake Tools

Project Status содержит информацию по используемым конфигурациям и возможность запуска шагов сборки и отладки для проекта.

Configure

После настройки можно сконфигурировать CMake проект:

В Output консоли будет вызвана команда:

Executing command: "cmake.EXE" -DCMAKE_EXPORT_COMPILE_COMMANDS:BOOL=TRUE --no-warn-unused-cli -S<project_path> -B<project_path>/build -G "Visual Studio 17 2022" -T host=x64 -A x64

Последние параметры меняются в зависимости от выбранных конфигураций.

Build

Позволяет собрать сконфигурированный проект.

Запускает команды:

# clean
"cmake.EXE" --build <project_path>/build --config <config> --target clean
# rebuild
"cmake.EXE" --build <project_path>/build --config <config> --target ALL_BUILD

Test

Позволяет запустит тесты, если включена enable_testing() и настроен хотя бы один тест:

ctest.exe -C <config> -T test --output-on-failure -R <name>

Launch

Запуск без отладки.

Возможны 2 сценария использования:

Запуск через CMakeTools

Для корректного запуска (из нужной директории с необходимыми параметрами) необходимо добавить настройку в settings.json:

// после
    "cmake.pinnedCommands": [
        "workbench.action.tasks.configureTaskRunner",
        "workbench.action.tasks.runTask"
    ],
    "cmake.buildTask": true,
// добавить
    "cmake.debugConfig": {
        "request": "launch",
        "program": "${command:cmake.launchTargetPath}",
        "args": [
            "${workspaceRoot}/niconiconi.png"
        ],
        "cwd": "${workspaceRoot}"
    }

Открыть этот файл можно здесь:

Запуск через VSCode Run&Debug

Для корректного запуска необходимо настроить launch.json, который располагается в корне текущего VSCode workspace:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "DebugArgv",
            "type": "cppvsdbg",
            "request": "launch",
            "program": "${command:cmake.launchTargetPath}",
            "args": [
                "niconiconi.png"
            ],
            "cwd": "${workspaceRoot}",
        }
    ]
}

После чего можно запускать таргет через меню VSCode:

Debug

Крайне полезная ссылка: https://github.com/microsoft/vscode-cmake-tools/blob/main/docs/debug-launch.md

Отличие от запуска без отладки в необходимости задания дебаггера.

В режиме отладки можно в:

  • верхнем меню переходить по строкам кода и управлять исполнением;

  • меню Variables просматривать значения текущих локальных переменных;

  • меню Watch выносить интересующие переменные и следить за ними;

  • меню Call Stack следить за стеком вызовов функций;

  • меню Breakpoints управлять точками останова.

В Debug Console есть возможность посмотреть и изменить значения переменных в процессе отладки.

Подраздел Configure позволяет выбрать и саму

Пример настройки тестов

Для отладки следует перейти в раздел Run&Debug VSCode и выбрать в левом верхнем меню нужную вам конфигурацию запуска. В данном примере она одна. После чего в коде достаточно расставить и запустить программу в режиме отладки:

CMake генератор
конфигурацию
test in VSCode
breakpoint-ы
оф. сайте
памятке
CMake Tools
здесь