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 | Tipo | 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 |
string | 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 |
string | 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 |
string | 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 las variables de entorno por destino mediante la sintaxis env.VARIABLE_NAME . Para anular una variable, establézcala en "null" . |
name |
string | 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 |
string | Especifica el nombre del puerto cuando se asocia a un proceso en ejecución. |
program |
string | Comando de depuración para ejecutar. Tiene como valor predeterminado "${debugInfo.fullTargetPath}" . |
project |
string | especifica la ruta de acceso relativa al archivo del proyecto. Normalmente, no es necesario cambiar este valor al depurar un proyecto de CMake. |
projectTarget |
string | 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 |
string | Especifica el nombre de la máquina remota en la que se inicia el programa. |
type |
string | Especifica si el proyecto es del tipo dll o exe . Tiene .exe como valor predeterminado. |
Propiedades de Linux para C++
Propiedad | Tipo | Description |
---|---|---|
program |
string | 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 |
objeto | 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 |
string | Uno de los elementos sourceFileMapOptions. (Vea a continuación). |
MIMode |
string | 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 |
string | 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 |
string | 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 |
string | 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 |
string | La ruta de acceso del depurador habilitado para MI (como gdb). Si no se especifica, buscará primero la variable PATH del depurador. |
miDebuggerServerAddress |
string | 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 |
string | 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 |
string | La ruta de acceso completa opcional al servidor de depuración que se va a iniciar. El valor predeterminado es NULL. |
debugServerArgs |
string | 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. Tiene como valor predeterminado false . |
coreDumpPath |
string | 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 |
string | 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}"
]
}
Propiedades de depuración e implementación de Windows con C++
Se usan al depurar e implementar una aplicación en una máquina remota.
Propiedad | Tipo | Description |
---|---|---|
cwd |
string | 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 |
string | 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 |
string | 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 |
string | 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 |
string | 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 |
string | 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 |
string | 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. |
Comandos de configuración de inicio
Se usan con la propiedad setupCommands
:
Propiedad | Tipo | Description |
---|---|---|
text |
string | El comando del depurador que se va a ejecutar. |
description |
string | Una descripción opcional del comando. |
ignoreFailures |
boolean | Si es "true", los errores del comando deben omitirse. Tiene como valor predeterminado false . |
Opciones de transporte de canalización
Se usan con la propiedad pipeTransport
:
Propiedad | Tipo | Description |
---|---|---|
pipeCwd |
string | La ruta de acceso completa al directorio de trabajo del programa de canalización. |
pipeProgram |
string | 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 |
string | La ruta de acceso completa al depurador en la máquina de destino. Por ejemplo, /usr/bin/gdb. |
pipeEnv |
objeto | 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 código fuente
Se usan con la propiedad sourceFileMap
:
Propiedad | Tipo | Description |
---|---|---|
editorPath |
string | 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 . |