Если точка останова в VS Code на Mac превращается в пустой серый круг, отладчик не смог её зарегистрировать. Сначала проверьте, может ли эта строка выполняться и поддерживает ли активный отладчик этот файл. Затем убедитесь, что сеанс отладки выполняет именно тот код, который вы редактируете. Сам по себе этот индикатор не указывает на конкретную причину; данная последовательность действий позволяет сузить круг поиска без попыток угадать универсальное решение. В руководстве по отладке в VS Code описан пустой круг и распространенные причины его появления.
Проверьте состояние точки останова
Заполненный красный круг означает включенную точку останова; заполненный серый круг — отключенную. Пустой серый круг означает, что отладчик не смог зарегистрировать точку останова. В документации VS Code названы две частые причины: строка не содержит исполняемого кода либо отладчик не поддерживает данный исходный файл. Точки останова, которые не удается зарегистрировать, также могут отображаться пустыми в начале сеанса; правки исходного кода во время сеанса без поддержки динамического редактирования («на лету») могут приводить к появлению того же индикатора. Точное поведение зависит от языка и расширения отладчика.
В macOS откройте панель Запуск и отладка (Run and Debug) с помощью комбинации Shift–Command–D. В разделе ТОЧКИ ОСТАНОВА (BREAKPOINTS) найдите нужную запись и убедитесь, что она включена. Это представление позволяет управлять точками останова, но само по себе не объясняет, почему отладчик отклонил какую-либо из них. Оставьте редактор открытым на отмеченной строке, чтобы сравнить расположение исходного кода с файлом, используемым в сеансе. VS Code: Debug code
Проверьте, может ли строка выполняться
Переместите точку останова на строку, которая выполняет действие, например на оператор внутри функции, а не на пустую строку, комментарий или фигурную скобку. Точка останова полезна только там, где отладчик может приостановить выполнение. Если после запуска сеанса замененный маркер превратится в заполненный красный круг, значит, в исходной строке, скорее всего, не было исполняемого кода. Это диагностический вывод, основанный на документированном поведении, а не гарантия: поддержка и привязка точек останова зависят от отладчика и языка.
Если код генерируется, транслируется, собирается в бандл или иным образом отличается от файла, выполняемого работающей программой, отладчику могут потребоваться сопоставления исходного кода (source maps) или другая языковая настройка для связи расположения в редакторе с кодом во время выполнения. В общем руководстве по VS Code не предусмотрено единой универсальной конфигурации для такой ситуации. Ознакомьтесь с документацией по используемому расширению отладчика и процессу сборки, прежде чем менять параметры сопоставления.
Проверьте активный отладчик и сеанс
VS Code включает встроенную поддержку отладки для JavaScript, TypeScript и Node.js. Для других языков и сред выполнения обычно требуется соответствующее расширение отладчика. Убедитесь, что нужное расширение установлено и активно, затем запустите сеанс для соответствующего языка или среды выполнения. Если VS Code предложит выбрать отладчик, выберите тот, который подходит для запускаемой программы. В документации расширения описаны поддерживаемые им исходные файлы, поведение точек останова и параметры запуска. VS Code: Debug code
Нажмите F5, чтобы начать отладку, или используйте панель Запуск и отладка для выбора конфигурации. Простая программа может запускаться из активного файла, но для приложения с определенной точкой входа, аргументами, переменными среды или целевым процессом для подключения может потребоваться файл конфигурации launch.json. В случае сценария подключения убедитесь, что целевой процесс уже запущен в режиме отладки и параметры подключения совпадают. Корректно установленная точка останова в файле, отличном от загруженного исходного кода программы, может оставаться неподтвержденной. VS Code: Configure debugging
Локализуйте причину с помощью короткой последовательности действий
Выполняйте эти шаги по порядку, меняя по одному параметру за раз, чтобы результат был информативным:
- В разделе ТОЧКИ ОСТАНОВА убедитесь, что точка останова включена, и обратите внимание на ее файл и строку.
- Переместите ее на исполняемый оператор в этом файле.
- Запустите нужную конфигурацию отладки с помощью F5 и посмотрите, зарегистрируется ли маркер.
- Если он остается пустым, убедитесь, что выбранный отладчик поддерживает этот файл, а его расширение установлено и активно.
- Убедитесь, что конфигурация запускает программу (или подключается к ней), собранную именно из того исходного кода, который вы просматриваете. Проверьте точку входа, рабочий каталог и любые задачи сборки или предпусковые задачи (pre-launch tasks), относящиеся к вашему проекту.
- Если приложение преобразует исходный код, обратитесь к инструкциям для языкового отладчика по сопоставлению файлов редактора с кодом во время выполнения.
Успешная проверка одной точки не доказывает работоспособность каждой точки останова в проекте; повторяйте проверку в конкретном месте исходного кода. Если отладчик сообщает об ошибке конфигурации или регистрации, используйте это сообщение и документацию расширения, чтобы определить следующее действие. Избегайте копирования настроек от другого отладчика: в документации VS Code отмечается, что свойства конфигурации и возможности зависят от выбранного отладчика и типа запроса. VS Code: Configure debugging
О чем может и о чем не может сообщить индикатор
Пустой круг сообщает лишь о том, что отладчик не зарегистрировал данную точку останова. Сам по себе он не позволяет отличить неисполняемую строку от неподдерживаемого исходного кода, несоответствия между кодом в редакторе и кодом во время выполнения или других ограничений конкретного отладчика. Наиболее полезный следующий шаг — протестировать явно исполняемую строку в нужном сеансе, а затем проверить отладчик и сопоставление исходных кодов, если регистрация по-прежнему завершается неудачно. На Mac основные элементы управления остаются стандартными для VS Code: область полей редактора (gutter), панель Запуск и отладка, клавиша F5 и сочетание Shift–Command–D; решения, специфичные для конкретного отладчика, следует искать в документации расширения или среды выполнения.
Источники
- Debug code with Visual Studio Code — Visual Studio Code
- Configure debugging in Visual Studio Code — Visual Studio Code