launch.vs.json
referência de esquema (C++)
No Visual Studio 2017 e versões posteriores, é possível abrir e compilar código de praticamente qualquer projeto baseado em diretório sem exigir uma solução ou arquivo de projeto. Quando não houver arquivo de projeto ou solução, você poderá especificar as tarefas de build personalizadas e iniciar os parâmetros por meio de arquivos de configuração JSON. Este artigo descreve o arquivo launch.vs.json
, que especifica os parâmetros de depuração. Para obter mais informações sobre o recurso "Abrir pasta", consulte Desenvolver código no Visual Studio sem projetos ou soluções.
Para criar o arquivo, clique com o botão direito do mouse em um arquivo executável no Gerenciador de Soluções e escolha Configurações de Depuração e de Inicialização. Escolha a opção que mais se aproxima do projeto e, em seguida, use as propriedades a seguir para modificar a configuração conforme necessário. Para obter mais informações sobre depuração de projetos CMake, consulte Configurar sessões de depuração do CMake.
Propriedades padrão
Propriedade | Type | Descrição |
---|---|---|
args |
array | Especifica os argumentos de linha de comando passados para o programa iniciado. |
buildConfigurations |
matriz | Um par chave-valor que especifica o nome do modo de build para aplicar as configurações. Por exemplo, Debug ou Release e as configurações a serem usadas de acordo com o modo de build selecionado. |
currentDir |
string | Especifica o caminho completo do diretório para o destino de build. O diretório é detectado automaticamente, amenos que esse parâmetro seja definido. |
cwd |
string | Caminho completo para o diretório no sistema remoto onde o programa será executado. Usa como padrão "${debugInfo.defaultWorkingDirectory}" |
debugType |
string | Especifica o modo de depuração de acordo com o tipo de código (nativo, gerenciado ou misto). O modo é detectado automaticamente, a menos que esse parâmetro seja definido. Valores permitidos: "native" , "managed" , "mixed" . |
env |
matriz | Especifica uma lista de valores-chave de variáveis de ambiente personalizadas. Por exemplo: env:{"myEnv":"myVal"} . |
inheritEnvironments |
matriz | Especifica um conjunto de variáveis de ambiente herdadas de várias origens. Você pode definir algumas variáveis em arquivos como CMakeSettings.json ou CppProperties.json disponibilizá-las para o contexto de depuração. Visual Studio 16.4: especifique variáveis de ambiente por destino usando a sintaxe env.VARIABLE_NAME . Para remover definição de uma variável, defina-a como "null" . |
name |
string | Especifica o nome da entrada na lista suspensa Item de Inicialização. |
noDebug |
boolean | Especifica se o programa iniciado deverá ser depurado. O valor padrão para esse parâmetro será false , se não estiver especificado. |
portName |
string | Especifica o nome da porta ao conectar um processo em execução. |
program |
string | O comando de depuração a ser executado. Assume o padrão de "${debugInfo.fullTargetPath}" . |
project |
string | Especifica o caminho relativo para o arquivo de projeto. Normalmente, não é necessário alterar esse valor ao depurar um projeto CMake. |
projectTarget |
string | Especifica o destino opcional invocado ao compilar project . O destino deve corresponder ao nome na lista suspensa Item de Inicialização. |
stopOnEntry |
boolean | Especifica se uma interrupção deverá ser interrompida assim que o processo for iniciado e o depurador anexado. O valor padrão para esse parâmetro é false . |
remoteMachine |
string | Especifica o nome do computador remoto em que o programa inicia. |
type |
string | Especifica se o projeto é dll ou exe Padrões para .exe |
Propriedades do Linux C++
Propriedade | Type | Descrição |
---|---|---|
program |
string | Caminho completo para o programa executável no caminho remoto. Ao usar o CMake, a macro ${debugInfo.fullTargetPath} poderá ser usada como o valor desse campo. |
processId |
Número inteiro | ID de processo opcional ao qual anexar o depurador. |
sourceFileMap |
objeto | Mapeamentos de arquivo de origem opcionais passados para o mecanismo de depuração. Formatar: { "\<Compiler source location>": "\<Editor source location>" } ou { "\<Compiler source location>": { "editorPath": "\<Editor source location>", "useForBreakpoints": true } } . Exemplo: { "/home/user/foo": "C:\\foo" } ou { "/home/user/foo": { "editorPath": "c:\\foo", "useForBreakpoints": true } } . Para obter mais informações, consulte Opções de mapa de arquivo de origem. |
additionalProperties |
string | Um dos sourceFileMapOptions. (Consulte abaixo.) |
MIMode |
string | Indica o tipo de depurador de console habilitado para MI ao qual o MIDebugEngine se conectará. Os valores permitidos são "gdb" , "lldb" . |
args |
matriz | Argumentos de linha de comando passados para o programa. |
environment |
matriz | Variáveis de ambiente a serem adicionadas ao ambiente para o programa. Exemplo: [ { "name": "squid", "value": "clam" } ] . |
targetArchitecture |
string | A arquitetura do depurado. A arquitetura é detectada automaticamente, a menos que esse parâmetro seja definido. Os valores permitidos são x86 , arm , arm64 , mips , x64 , amd64 , x86_64 . |
visualizerFile |
string | O arquivo .natvis a ser usado ao depurar esse processo. Esta opção não é compatível com a reformatação automática de GDB. Consulte "showDisplayString" se você usa essa configuração. |
showDisplayString |
boolean | Quando um visualizerFile estiver especificado, showDisplayString habilitará a cadeia de caracteres de exibição. Ativar essa opção poderá diminuir o desempenho durante a depuração. |
remoteMachineName |
string | O computador remoto Linux que hospeda o gdb e o programa para depurar. Use o Gerenciador de Conexões para a adição de novos computadores Linux. Ao usar o CMake, a macro ${debugInfo.remoteMachineName} poderá ser usada como o valor desse campo. |
miDebuggerPath |
string | O caminho para o depurador habilitado para MI (como gdb). Quando não for especificado, ele pesquisará o PATH primeiro para o depurador. |
miDebuggerServerAddress |
string | Endereço de rede do servidor do depurador habilitado para MI ao qual se conectar. Exemplo: "localhost:1234" . |
setupCommands |
matriz | Um ou mais comandos GDB/LLDB a serem executados para configurar o depurador subjacente. Exemplo: "setupCommands": [ { "text": "-enable-pretty-printing", "description": "Enable GDB pretty printing", "ignoreFailures": true }] . Para obter mais informações, consulte Iniciar comandos de configuração. |
customLaunchSetupCommands |
matriz | Se fornecido, esse valor substituirá os comandos padrão usados para iniciar um destino por alguns outros comandos. Por exemplo, use "-target-attach" para anexar a um processo de destino. Uma lista de comandos vazia substituirá os comandos de inicialização por nada, o que poderá ser útil se o depurador estiver recebendo opções de inicialização como opções de linha de comando. Exemplo: "customLaunchSetupCommands": [ { "text": "target-run", "description": "run target", "ignoreFailures": false }] . |
launchCompleteCommand |
string | O comando que executará depois que o depurador estiver completamente configurado para fazer com que o processo de destino execute. Os valores permitidos são "exec-run", "exec-continue", "None". O valor padrão é "exec-run". |
debugServerPath |
string | Caminho completo opcional para o servidor de depuração a ser iniciado. O padrão é nulo. |
debugServerArgs |
string | Argumentos de servidor de depuração opcionais. O padrão é nulo. |
filterStderr |
boolean | Pesquise stderr stream para o padrão iniciado pelo servidor e registre stderr para depurar a saída. Assume o padrão de false . |
coreDumpPath |
string | Caminho completo opcional para um arquivo de dump principal para o programa especificado. O padrão é nulo. |
externalConsole | boolean | Se true, um console é iniciado para o depurado. Se false , nenhum console é iniciado. O padrão para essa configuração é false . Essa opção é ignorada em alguns casos por motivos técnicos. |
pipeTransport |
string | Quando presente, esse valor informará ao depurador para conectar um computador remoto usando outro executável como um pipe que retransmitirá a entrada/saída padrão entre o Visual Studio e o depurador habilitado para MI (como gdb). Valores permitidos: uma ou mais Opções de transporte de pipe. |
debugInfo macros
As macros a seguir fornecem informações sobre o ambiente de depuração. Eles são úteis para personalizar a inicialização do aplicativo para depuração.
Macro | Descrição | Exemplo |
---|---|---|
addressSanitizerRuntimeFlags |
Sinalizadores de runtime utilizados para personalizar o comportamento do address sanitizer. Usado para definir a variável de ambiente "ASAN_OPTIONS" . |
"env": {"ASAN_OPTIONS": "${addressSanitizerRuntimeFlags}:anotherFlag=true" } |
defaultWorkingDirectory |
Defina para a parte do diretório de "fullTargetPath" . Se a variável CMake VS_DEBUGGER_WORKING_DIRECTORY for definida, então defaultWorkingDirectory será definido para esse valor. |
"cwd":"${debugInfo.defaultWorkingDirectory}" |
fullTargetPath |
O caminho completo para o binário que está sendo depurado. | "program": "${debugInfo.fullTargetPath}" |
linuxNatvisPath |
O caminho completo do Windows para o arquivo .natvis . Geralmente aparece como o valor "visualizerFile" . |
|
parentProcessId |
A ID do processo para a instância atual do Visual Studio. Usado como um parâmetro para shellexec. | Veja o exemplo pipeTransport abaixo. |
remoteMachineId |
Um identificador numérico exclusivo para a conexão com o computador remoto. Usado como um parâmetro para shellexec. | Veja o exemplo pipeTransport abaixo. |
remoteWorkspaceRoot |
Caminho do Linux para a cópia remota do workspace. | Especifique os locais dos arquivos no computador remoto. Por exemplo: "args": ["${debugInfo.remoteWorkspaceRoot}/Data/MyInputFile.dat"] |
resolvedRemoteMachineName |
O nome do computador remoto de destino. | Valor "targetMachine" em uma diretiva de implantação |
shellexecPath |
O caminho para o programa shellexec que o Visual Studio está usando para gerenciar a conexão de computador remoto. | Veja o exemplo pipeTransport abaixo |
tty |
O gdb redirecionará a entrada e a saída para esse dispositivo para o programa que está sendo depurado. Usado como parâmetro para gdb (-tty). | Veja o exemplo pipeTransport abaixo. |
windowsSubsystemPath |
O caminho completo para a instância do Subsistema do Windows para Linux. |
O exemplo pipeTransport abaixo mostra como usar algumas das macros debugInfo
definidas acima:
"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}"
]
}
Propriedades de depuração e implantação remotas do Windows C++
Usado ao depurar e implantar um aplicativo em um computador remoto.
Propriedade | Type | Descrição |
---|---|---|
cwd |
string | O diretório de trabalho do destino no computador remoto. Ao usar o CMake, a macro ${debugInfo.defaultWorkingDirectory} poderá ser usada como o valor desse campo. O valor padrão é o diretório do programa/comando de depuração. |
deploy |
string | Especifica arquivos ou diretórios adicionais a serem implementados. Por exemplo:"deploy": {"sourcePath":"<Full path to source file/directory on host machine>", "targetPath":"<Full destination path to file/directory on target machine>"} |
deployDirectory |
string | O local no computador remoto onde as saídas do projeto são implantadas automaticamente. O padrão é "C:\Windows Default Deploy Directory\<name of app> |
deployDebugRuntimeLibraries |
string | Especifica se as bibliotecas de runtime de depuração deverão ser implementadas para a plataforma ativa. Padrões para "true" se o configurationType for "Debug" . |
deployRuntimeLibraries |
string | Especifica se as bibliotecas de runtime deverão ser implementadas para a plataforma ativa. Padrão para "true" se o configurationType for "MinSizeRel" , "RelWithDebInfo" ou "Release" . |
disableDeploy |
boolean | Especifica se os arquivos deverão ser implantados. |
remoteMachineName |
string | Especifica o nome do computador remoto Windows ARM64 na qual o programa é ativado. Pode ser o nome do servidor ou o endereço IP do computador remoto. |
authenticationType |
string | Especifica o tipo de conexão remota. Os valores possíveis são "windows" e "none" . O padrão é "windows" . Esse valor deve corresponder à configuração de autenticação especificada no depurador remoto em execução no computador remoto. |
Iniciar comandos de instalação
Usado com a propriedade setupCommands
:
Propriedade | Type | Descrição |
---|---|---|
text |
string | O comando do depurador a ser executado. |
description |
string | Descrição opcional para o comando. |
ignoreFailures |
boolean | Se true, as falhas do comando deverão ser ignoradas. Assume o padrão de false . |
Opções de transporte de pipe
Usado com a propriedade pipeTransport
:
Propriedade | Type | Descrição |
---|---|---|
pipeCwd |
string | O caminho totalmente qualificado para o diretório de trabalho do programa do pipe. |
pipeProgram |
string | O comando do pipe totalmente qualificado para executar. |
pipeArgs |
matriz | Argumentos da linha de comando passados para o programa do pipe para configurar a conexão. |
debuggerPath |
string | O caminho completo para o depurador no computador de destino, por exemplo, /usr/bin/gdb. |
pipeEnv |
objeto | Variáveis de ambiente passadas para o programa do pipe. |
quoteArgs |
boolean | Se os argumentos individuais contiverem caracteres (como espaços ou tabulações), eles deverão ser citados? Se false , o comando do depurador não será mais citado automaticamente. O padrão é true . |
Opções de mapa de arquivo de origem
Use com a propriedade sourceFileMap
:
Propriedade | Type | Descrição |
---|---|---|
editorPath |
string | A localização do código-fonte para o editor localizar. |
useForBreakpoints |
boolean | Ao definir os pontos de interrupção, será necessário usar esse mapeamento de origem. Se false , apenas o nome do arquivo e o número da linha serão usados para definir os pontos de interrupção. Se true , os pontos de interrupção serão definidos com o caminho completo para o arquivo e o número de linha somente quando esse mapeamento de origem for usado. Caso contrário, apenas o nome do arquivo e o número da linha serão usados ao definir os pontos de interrupção. O padrão é true . |