Чтобы подключить VS Code к процессу, уже запущенному на вашем Mac, используйте отладчик, поддерживающий язык этого процесса: для Node.js выберите Attach to Node Process в палитре команд (Command Palette); для C# выберите Debug: Attach to a .NET 5+ or .NET Core process; для C/C++ создайте конфигурацию подключения (attach), используя LLDB или GDB. Эти способы зависят от среды выполнения или расширения. Универсальной команды VS Code, подключающейся к любому типу процессов, не существует.
Перед подключением: определите процесс и отладчик
Сначала определите, на чём работает процесс: Node.js, .NET, нативный C/C++ или другая среда выполнения. Встроенный в VS Code отладчик Node и языковые расширения предоставляют разные функции подключения; тот факт, что процесс отображается в «Мониторинге системы» (Activity Monitor) macOS, не означает, что к нему может подключиться любой отладчик. Вам также понадобится соответствующее расширение для данного языка. Для нативного C/C++ на macOS Microsoft документирует поддержку LLDB или GDB через расширение C/C++. VS Code: Debug C++
Откройте проект или исходные файлы, соответствующие работающей программе. Подключение (attach) связывает отладчик с процессом; оно не запускает приложение, не выполняет повторную сборку и не гарантирует привязку точек останова (breakpoints). Соответствие исходного кода и наличие отладочных символов крайне важны, особенно для нативных программ и оптимизированных сборок.
Подключение к работающему процессу Node.js
В VS Code нажмите ⇧⌘P, чтобы открыть палитру команд, запустите Debug: Attach to Node Process и выберите нужный процесс из списка Quick Pick. В средстве выбора отображаются процессы-кандидаты, их идентификаторы (PID) и порты отладки. VS Code описывает этот способ как для процессов Node, запущенных не в режиме отладки, так и для процессов, использующих параметр inspect. VS Code: Node.js debugging
Если процесса нет в списке или вам нужна конфигурация для многократного использования, откройте или создайте .vscode/launch.json и добавьте конфигурацию подключения. Для процесса, который уже запущен без режима отладки, используйте переменную выбора идентификатора процесса:
{
"name": "Attach to Node process",
"type": "node",
"request": "attach",
"processId": "${command:PickProcess}"
}
Выберите эту конфигурацию в разделе Запуск и отладка (Run and Debug), затем начните отладку с помощью F5. Для процесса Node, уже запущенного с флагом --inspect, используйте конфигурацию подключения с указанием порта отладки; по умолчанию в Node используется 9229. Не объединяйте processId и port: VS Code определяет порт автоматически при подключении по идентификатору процесса. Подробные сведения о конфигурации отладки Node.js
Подключение к работающему процессу .NET
Установите расширение Microsoft C# и откройте палитру команд с помощью ⇧⌘P. Запустите команду Debug: Attach to a .NET 5+ or .NET Core process, затем выберите целевой процесс из списка. Это официально задокументированный способ подключения к процессу для C# в VS Code; используйте его вместо предположений о том, что средство выбора процессов Node или поля его конфигурации применимы к .NET. VS Code: C# debugging
После подключения установите точку останова в соответствующем исходном коде и дождитесь, пока приложение дойдет до этого кода. Если точка останова не привязывается (unbound), убедитесь, что процесс выполняет сборку, соответствующую открытому вами исходному коду, и что доступны пригодные для использования символы. Параметр точного соответствия исходного кода (exact-source) и параметры символов в отладчике C# могут влиять на отладку, а само подключение не может задним числом изменить то, как были скомпилированы уже загруженные модули. Параметры отладчика C#
Подключение к нативному процессу C или C++
Установите расширение Microsoft C/C++ и используйте конфигурацию подключения в .vscode/launch.json. Для конфигурации требуются: путь к исполняемому файлу (чтобы отладчик мог загрузить символы), запрос на подключение (attach) и идентификатор процесса. В справочнике по настройке C/C++ указана переменная ${command:pickProcess} как средство выбора процесса по умолчанию и LLDB как доступный отладчик на macOS. Справочник по файлу конфигурации запуска C/C++
Минимальная конфигурация для macOS выглядит следующим образом:
{
"name": "Attach to native process",
"type": "cppdbg",
"request": "attach",
"program": "${workspaceFolder}/path/to/executable",
"processId": "${command:pickProcess}",
"MIMode": "lldb"
}
Замените path/to/executable фактическим исполняемым файлом, используемым работающим процессом. Оставьте для MIMode значение lldb для этого примера с LLDB; для GDB в macOS требуются отдельные настройки. Отладчику необходимо расположение исполняемого файла для загрузки символов, поэтому наугад выбранный или несвязанный путь может сделать отладку на уровне исходного кода невозможной. Справочник по настройке C/C++
Если подключение завершается ошибкой или точки останова не срабатывают
Убедитесь, что вы выбрали правильный процесс, что соответствующее расширение установлено, а архитектуры процесса и отладчика совместимы. На Apple silicon несоответствие архитектур прямо указано в документации как возможная причина ошибок подключения в C#. Для C/C++ убедитесь, что путь к исполняемому файлу и доступные символы соответствуют работающей сборке. Если процесс принадлежит другому пользователю или защищен macOS, права операционной системы также могут препятствовать подключению; используйте авторизованный процесс и следуйте действующей политике безопасности macOS вместо попыток ее обойти.
Для Node.js используйте средство выбора процессов, предназначенное для этого языка, либо настройте порт inspect; общая конфигурация подключения C/C++ не подойдет. Для C# используйте команду подключения к .NET. Для нативного C/C++ используйте cppdbg с LLDB или отдельно настроенную установку GDB. Эти различия помогают определить дальнейшие действия, когда общая инструкция по «подключению» не подходит для целевого приложения.
По завершении используйте Debug: Stop, чтобы отключиться. В режиме подключения к Node.js в документации VS Code указано, что остановка отключает отладчик, а целевой процесс продолжает работу. Уточните поведение расширения для других сред выполнения, если сохранение процесса активным имеет значение; сеансы подключения (attach) и запуска (launch) не обязательно одинаково реагируют на остановку. VS Code: Node.js debugging
Источники
Node.js debugging in VS Code — Microsoft
Debugging — Microsoft
List of configurable options — Microsoft
Configure C/C++ debugging — Microsoft
Debug C++ in Visual Studio Code — Microsoft