Share via


Referencia del esquemalaunch.vs.json (C++)

En Visual Studio 2017 y versiones posteriores, puede abrir y compilar código desde casi cualquier proyecto basado en directorios sin necesidad de un archivo de solución o proyecto. Cuando no hay ningún archivo de proyecto o solución, puede especificar tareas de compilación personalizadas e iniciar parámetros mediante archivos de configuración JSON. En este artículo se describe el archivo launch.vs.json, que especifica los parámetros de depuración. Para obtener más información sobre la característica “Abrir carpeta”, vea Desarrollo de código en Visual Studio sin proyectos o soluciones.

Para crear el archivo, haga clic con el botón derecho en un archivo ejecutable en el Explorador de soluciones y elija Configuración de depuración e inicio. Elija la opción que más se aproxime al proyecto y, a continuación, use las siguientes propiedades para modificar la configuración según sea necesario. Para obtener más información sobre la depuración de proyectos de CMake, vea Configuración de sesiones de depuración de CMake.

Propiedades predeterminadas

Propiedad Type Descripción
args array Especifica los argumentos de línea de comandos que se pasan al programa iniciado.
buildConfigurations array Un par clave-valor que especifica el nombre del modo de compilación para aplicar las configuraciones. Por ejemplo, Debug o Release y las configuraciones que se van a usar según el modo de compilación seleccionado.
currentDir cadena Especifica la ruta de acceso completa al directorio del destino de compilación. El directorio se detecta automáticamente a menos que se haya establecido este parámetro.
cwd cadena Ruta de acceso completa al directorio del sistema remoto en el que se ejecutará el programa. De manera predeterminada, su valor es "${debugInfo.defaultWorkingDirectory}".
debugType cadena Especifica el modo de depuración según el tipo de código (nativo, administrado o mixto). El modo se detecta automáticamente, a menos que se haya establecido este parámetro. Valores permitidos: "native", "managed" y "mixed".
env array Especifica una lista de pares clave-valor de variables de entorno personalizadas. Por ejemplo: env:{"myEnv":"myVal"}.
inheritEnvironments array Especifica un conjunto de variables de entorno heredado de varios orígenes. Puede definir algunas variables en archivos como CMakeSettings.json o CppProperties.json, y hacer que estén disponibles para depurar el contexto. Visual Studio 16.4: especifique variables de entorno por destino mediante la env.VARIABLE_NAME sintaxis . Para anular una variable, establézcala en "null".
name cadena Especifica el nombre de la entrada en el menú desplegable Elemento de inicio.
noDebug boolean Especifica si se va a depurar el programa iniciado. Si no se especifica este parámetro, se usa el valor predeterminado false.
portName cadena Especifica el nombre del puerto cuando se asocia a un proceso en ejecución.
program cadena Comando de depuración que se va a ejecutar. Su valor predeterminado es "${debugInfo.fullTargetPath}".
project cadena especifica la ruta de acceso relativa al archivo del proyecto. Normalmente, no es necesario cambiar este valor al depurar un proyecto de CMake.
projectTarget cadena Especifica el destino opcional invocado al compilar project. El destino debe coincidir con el nombre del menú desplegable Elemento de inicio.
stopOnEntry boolean Especifica si se debe interrumpir en cuanto se inicie el proceso y se asocia el depurador. El valor predeterminado para este parámetro es false.
remoteMachine cadena Especifica el nombre de la máquina remota en la que se inicia el programa.
type cadena Especifica si el proyecto es del tipo dll o exe. Tiene .exe como valor predeterminado.

Propiedades de Linux para C++

Propiedad Type Description
program cadena Ruta de acceso completa al ejecutable del programa en la máquina remota. Al usar CMake, la macro ${debugInfo.fullTargetPath} se puede usar como valor de este campo.
processId integer Identificador de proceso opcional al que se va a asociar el depurador.
sourceFileMap object Asignaciones de archivo de código fuente opcionales que se pasan al motor de depuración. Formato: { "\<Compiler source location>": "\<Editor source location>" } o { "\<Compiler source location>": { "editorPath": "\<Editor source location>", "useForBreakpoints": true } }. Ejemplo: { "/home/user/foo": "C:\\foo" } o { "/home/user/foo": { "editorPath": "c:\\foo", "useForBreakpoints": true } }. Para obtener más información, consulte Opciones de mapa de archivo de origen.
additionalProperties cadena Uno de los elementos sourceFileMapOptions. (Vea a continuación).
MIMode cadena Indica el tipo de depurador de consola habilitado para MI al que MIDebugEngine se conectará. Los valores permitidos son "gdb" y "lldb".
args array Argumentos de la línea de comandos que se pasan al programa.
environment array Variables de entorno que se agregan al entorno del programa. Ejemplo: [ { "name": "squid", "value": "clam" } ].
targetArchitecture cadena La arquitectura del depurado. La arquitectura se detecta automáticamente a menos que se haya establecido este parámetro. Los valores permitidos son x86, arm, arm64, mips, x64, amd64 y x86_64.
visualizerFile cadena Archivo .natvis que se usará para depurar este proceso. Esta opción no es compatible con la impresión con sangría de GDB. Si usa esta configuración, consulte "showDisplayString".
showDisplayString boolean Si se especifica un valor visualizerFile, showDisplayString habilitará la cadena para mostrar. Activar esta opción puede ralentizar el rendimiento durante la depuración.
remoteMachineName cadena La máquina remota de Linux que hospeda gdb y el programa que se va a depurar. Use el Administrador de conexiones para agregar nuevas máquinas Linux. Al usar CMake, la macro ${debugInfo.remoteMachineName} se puede usar como valor de este campo.
miDebuggerPath cadena La ruta de acceso del depurador habilitado para MI (como gdb). Si no se especifica, buscará primero la variable PATH del depurador.
miDebuggerServerAddress cadena La dirección de red del servidor del depurador habilitado para MI al que debe conectarse. Ejemplo: "localhost:1234".
setupCommands array Uno o más comandos GDB/LLDB que se ejecutarán para configurar el depurador subyacente. Ejemplo: "setupCommands": [ { "text": "-enable-pretty-printing", "description": "Enable GDB pretty printing", "ignoreFailures": true }]. Para obtener más información, consulte Iniciar comandos de instalación.
customLaunchSetupCommands array Si se proporciona, este valor reemplaza los comandos predeterminados que se usan para iniciar un destino por otros comandos. Por ejemplo, use "-target-attach" para la asociación a un proceso de destino. Una lista de comandos vacía reemplaza los comandos de inicio por nada, lo que puede resultar útil si se proporcionan las opciones de inicio del depurador como opciones de línea de comandos. Ejemplo: "customLaunchSetupCommands": [ { "text": "target-run", "description": "run target", "ignoreFailures": false }].
launchCompleteCommand cadena El comando que se va a ejecutar después de que el depurador esté totalmente configurado, para que el proceso de destino se ejecute. Los valores permitidos son "exec-run", "exec-continue" y "None". El valor predeterminado es "exec-run".
debugServerPath cadena La ruta de acceso completa opcional al servidor de depuración que se va a iniciar. El valor predeterminado es NULL.
debugServerArgs cadena Argumentos opcionales del servidor de depuración. El valor predeterminado es NULL.
filterStderr boolean Busca la secuencia stderr para el patrón iniciado por el servidor y registra stderr en la salida de depuración. Su valor predeterminado es false.
coreDumpPath cadena La ruta de acceso completa opcional a un archivo de volcado de memoria básico para el programa especificado. El valor predeterminado es NULL.
externalConsole boolean Si es "true", se inicia una consola para el depurado. Si es false, no se inicia ninguna consola. El valor predeterminado de esta configuración es false. Esta opción se omite en algunos casos por motivos técnicos.
pipeTransport cadena Cuando está presente, este valor indica al depurador que se conecte a un equipo remoto usando otro ejecutable como canalización, que reenviará la entrada o salida estándar entre Visual Studio y el depurador habilitado para MI (como gdb). Valores permitidos: una o más opciones de transporte de canalización.

Macros de debugInfo

Las macros siguientes proporcionan información sobre el entorno de depuración. Son útiles para personalizar el inicio de la aplicación para la depuración.

Macro Descripción Ejemplo
addressSanitizerRuntimeFlags Marcas en tiempo de ejecución que se usan para personalizar el comportamiento de AddressSanitizer. Se usa para establecer la variable de entorno "ASAN_OPTIONS". "env": {"ASAN_OPTIONS": "${addressSanitizerRuntimeFlags}:anotherFlag=true"}
defaultWorkingDirectory Se establece en la parte del directorio de "fullTargetPath". Si se define la variable CMake VS_DEBUGGER_WORKING_DIRECTORY, en su lugar, defaultWorkingDirectory se establece en ese valor. "cwd":"${debugInfo.defaultWorkingDirectory}"
fullTargetPath Ruta de acceso completa al archivo binario que se está depurando. "program": "${debugInfo.fullTargetPath}"
linuxNatvisPath Ruta de acceso completa de Windows al archivo .natvis de Linux de VS. Normalmente aparece como el valor "visualizerFile".
parentProcessId Identificador de proceso de la instancia de Visual Studio actual. Se usa como parámetro para shellexec. Consulte el ejemplo de pipeTransport siguiente.
remoteMachineId Identificador numérico único para la conexión con la máquina remota. Se usa como parámetro para shellexec. Consulte el ejemplo de pipeTransport siguiente.
remoteWorkspaceRoot Ruta de acceso de Linux a la copia remota del área de trabajo. Especifique las ubicaciones de archivo en el equipo remoto. Por ejemplo: "args": ["${debugInfo.remoteWorkspaceRoot}/Data/MyInputFile.dat"]
resolvedRemoteMachineName Nombre de la máquina remota de destino. Valor de "targetMachine" en una directiva de implementación
shellexecPath La ruta de acceso al programa shellexec que usa Visual Studio para administrar la conexión a la máquina remota. Consulte el ejemplo de pipeTransport siguiente.
tty gdb redirigirá la entrada y salida a este dispositivo para el programa que se está depurando. Se usa como parámetro para gdb (-tty). Consulte el ejemplo de pipeTransport siguiente.
windowsSubsystemPath Ruta de acceso completa a la instancia de Subsistema de Windows para Linux.

En el ejemplo de pipeTransport siguiente se muestra cómo usar algunas de las macros de debugInfo definidas anteriormente:

"pipeTransport": {
    "pipeProgram": "${debugInfo.shellexecPath}",
    "pipeArgs": [
        "/s",
        "${debugInfo.remoteMachineId}",
        "/p",
        "${debugInfo.parentProcessId}",
        "/c",
        "${debuggerCommand}",
        "--tty=${debugInfo.tty}"
    ],
    "pipeCmd": [
        "/s",
        "${debugInfo.remoteMachineId}",
        "/p",
        "${debugInfo.parentProcessId}",
        "/c",
        "${debuggerCommand}"
    ]
    }

Depuración e implementación remota de Windows en C++

Se usan al depurar e implementar una aplicación en una máquina remota.

Propiedad Type Description
cwd cadena El directorio de trabajo del destino en la máquina remota. Al usar CMake, la macro ${debugInfo.defaultWorkingDirectory} se puede usar como valor de este campo. El valor predeterminado es el directorio del programa o comando de depuración.
deploy cadena Especifica los archivos o directorios adicionales que se implementarán. Por ejemplo:
"deploy": {"sourcePath":"<Full path to source file/directory on host machine>", "targetPath":"<Full destination path to file/directory on target machine>"}
deployDirectory cadena Ubicación en la máquina remota para implementar automáticamente las salidas del proyecto. Tiene C:\Windows Default Deploy Directory\<name of app> como valor predeterminado.
deployDebugRuntimeLibraries cadena Especifica si se implementan las bibliotecas del entorno de ejecución de depuración para la plataforma activa. Tiene "true" como valor predeterminado si el valor configurationType activo es "Debug".
deployRuntimeLibraries cadena Especifica si se implementan las bibliotecas del entorno de ejecución para la plataforma activa. Tiene "true" como valor predeterminado si el valor configurationType activo es "MinSizeRel", "RelWithDebInfo" o "Release".
disableDeploy boolean Especifica si se deben implementar los archivos.
remoteMachineName cadena Especifica el nombre de la máquina remota Windows ARM64 en la que se inicia el programa. Puede ser el nombre del servidor o la dirección IP de la máquina remota.
authenticationType cadena Especifica el tipo de conexión remota. Los valores posibles son "windows" y "none". El valor predeterminado es "windows". Debe coincidir con la configuración de autenticación especificada en el depurador remoto que se ejecuta en la máquina remota.

Iniciar comandos de instalación

Se usan con la propiedad setupCommands:

Propiedad Type Description
text cadena El comando del depurador que se va a ejecutar.
description cadena Una descripción opcional del comando.
ignoreFailures boolean Si es "true", los errores del comando deben omitirse. Su valor predeterminado es false.

Opciones de transporte de canalización

Se usan con la propiedad pipeTransport:

Propiedad Type Description
pipeCwd cadena La ruta de acceso completa al directorio de trabajo del programa de canalización.
pipeProgram cadena El comando de canalización completo que se va a ejecutar.
pipeArgs array Argumentos de la línea de comandos que se pasan al programa de canalización para configurar la conexión.
debuggerPath cadena La ruta de acceso completa al depurador en la máquina de destino. Por ejemplo, /usr/bin/gdb.
pipeEnv object Variables de entorno que se pasan al programa de canalización.
quoteArgs boolean Si los argumentos individuales contienen caracteres (como espacios o tabulaciones), ¿debe incluirse entre comillas? Si es false, el comando del depurador ya no se incluirá automáticamente entre comillas. El valor predeterminado es true.

Opciones de asignación de archivos de origen

Se usan con la propiedad sourceFileMap:

Propiedad Type Description
editorPath cadena La ubicación del código fuente del editor que se va a buscar.
useForBreakpoints boolean Al establecer puntos de interrupción, se debe usar esta asignación de código fuente. Si es false, solo se usan el nombre de archivo y el número de línea para establecer los puntos de interrupción. Si es true, los puntos de interrupción solo se establecerán con la ruta de acceso completa al archivo y el número de línea cuando se use esta asignación de código fuente. De lo contrario, solo se usarán el nombre de archivo y el número de línea para establecer los puntos de interrupción. El valor predeterminado es true.