Para adjuntar VS Code a un proceso que ya se está ejecutando en su Mac, use el depurador compatible con el lenguaje de ese proceso: para Node.js, elija Attach to Node Process en la paleta de comandos; para C#, elija Debug: Attach to a .NET 5+ or .NET Core process; para C/C++, cree una configuración de adjuntado mediante LLDB o GDB. Estas vías son específicas del entorno de ejecución o de la extensión. No existe un único comando de VS Code que se adjunte a todo tipo de procesos.

Antes de adjuntar: identifique el proceso y el depurador

Primero identifique qué ejecuta el proceso: Node.js, .NET, C/C++ nativo u otro entorno de ejecución. El depurador integrado de Node en VS Code y sus extensiones de lenguaje ofrecen diferentes funciones para adjuntar; que un proceso aparezca en el Monitor de Actividad de macOS no significa que cualquier depurador pueda adjuntarse a él. También necesita la extensión correspondiente al lenguaje. Para C/C++ nativo en macOS, Microsoft documenta la compatibilidad con LLDB o GDB a través de la extensión C/C++. VS Code: Debug C++

Abra el proyecto o los archivos de código fuente que correspondan al programa en ejecución. Adjuntar conecta el depurador a un proceso; no inicia la aplicación, no la vuelve a compilar ni garantiza que los puntos de interrupción puedan vincularse. Que el código fuente coincida y que haya símbolos de depuración disponibles es importante, especialmente para programas nativos y compilaciones optimizadas.

Adjuntar a un proceso de Node.js en ejecución

En VS Code, presione ⇧⌘P para abrir la paleta de comandos, ejecute Debug: Attach to Node Process y seleccione el proceso deseado en el selector rápido (Quick Pick). El selector muestra una lista de procesos candidatos junto con sus identificadores de proceso (PID) y puertos de depuración. VS Code documenta esta vía tanto para procesos de Node que no se iniciaron en modo de depuración como para procesos que usan una opción de inspección. VS Code: Node.js debugging

Si el proceso no aparece en la lista, o si desea una configuración reproducible, abra o cree .vscode/launch.json y añada una configuración de adjuntado. Para un proceso que ya se está ejecutando sin modo de depuración, use la variable del selector de ID de proceso:

{
  "name": "Attach to Node process",
  "type": "node",
  "request": "attach",
  "processId": "${command:PickProcess}"
}

Seleccione esta configuración en Run and Debug y luego inicie la depuración con F5. Para un proceso de Node que ya se inició con --inspect, use en su lugar una configuración de adjuntado con su puerto de depuración; el valor predeterminado de Node es 9229. No combine processId y port: VS Code determina el puerto automáticamente al adjuntar por ID de proceso. Node.js debugging configuration details

Adjuntar a un proceso de .NET en ejecución

Instale la extensión C# de Microsoft y abra la paleta de comandos con ⇧⌘P. Ejecute Debug: Attach to a .NET 5+ or .NET Core process y luego seleccione el proceso de destino de la lista. Esta es la vía documentada para adjuntar procesos en C# dentro de VS Code; utilícela en lugar de asumir que el selector de procesos o los campos de configuración de Node se aplican a .NET. VS Code: C# debugging

Tras adjuntar, establezca un punto de interrupción en el código fuente correspondiente y deje que la aplicación llegue a ese código. Si el punto de interrupción permanece sin vincular, compruebe que el proceso esté ejecutando la compilación correspondiente al código fuente que abrió y que haya símbolos utilizables disponibles. La configuración de código fuente exacto y las opciones de símbolos del depurador de C# pueden influir en la depuración, y adjuntarse no puede modificar retroactivamente la forma en que se compilaron los módulos ya cargados. C# debugger settings

Adjuntar a un proceso nativo de C o C++

Instale la extensión C/C++ de Microsoft y use una configuración de adjuntado en .vscode/launch.json. La configuración requiere la ruta del ejecutable para que el depurador pueda cargar los símbolos, una solicitud de tipo attach y un ID de proceso. La referencia de configuración de C/C++ documenta ${command:pickProcess} como el selector de procesos predeterminado y a LLDB como depurador disponible en macOS. C/C++ launch configuration reference

La estructura mínima de configuración para macOS es:

{
  "name": "Attach to native process",
  "type": "cppdbg",
  "request": "attach",
  "program": "${workspaceFolder}/path/to/executable",
  "processId": "${command:pickProcess}",
  "MIMode": "lldb"
}

Reemplace path/to/executable por el ejecutable real que utiliza el proceso en ejecución. Mantenga MIMode establecido en lldb para este ejemplo con LLDB; GDB cuenta con requisitos de configuración independientes en macOS. El depurador necesita la ubicación del ejecutable para cargar los símbolos, por lo que una ruta supuesta o no relacionada puede inutilizar la depuración a nivel de código fuente. C/C++ configuration reference

Si la acción de adjuntar falla o los puntos de interrupción no se activan

Compruebe que haya seleccionado el proceso correcto, que la extensión correspondiente esté instalada y que el proceso y el depurador tengan arquitecturas compatibles. En Apple Silicon, las incompatibilidades de arquitectura están documentadas específicamente como una posible causa de errores al adjuntar en C#. Para C/C++, confirme que la ruta del ejecutable y los símbolos disponibles coincidan con la compilación en ejecución. Si el proceso pertenece a otro usuario o está protegido por macOS, los permisos del sistema operativo también pueden impedir el adjuntado; utilice un proceso autorizado y siga la política de seguridad correspondiente de macOS en lugar de intentar eludirla.

Para Node.js, utilice el selector de procesos específico del lenguaje o configure el puerto de inspección; una configuración genérica de adjuntado de C/C++ no sirve como sustituto. Para C#, use el comando de adjuntado de .NET. Para C/C++ nativo, use cppdbg con LLDB o una instalación de GDB configurada por separado. Estas distinciones ayudan a definir el paso siguiente cuando una instrucción genérica de «adjuntar» no se adapta al objetivo.

Al terminar, use Debug: Stop para desconectarse. En el modo de adjuntado de Node.js, la documentación de VS Code señala que detener la depuración desconecta el depurador y el proceso de destino continúa ejecutándose. Confirme el comportamiento de su extensión para otros entornos de ejecución si es importante mantener el proceso activo; las sesiones de tipo attach y launch no tienen necesariamente el mismo comportamiento de detención. VS Code: Node.js debugging

Fuentes