Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
No Visual Studio 2017 e versões posteriores, você pode abrir e criar código de praticamente qualquer projeto baseado em diretório sem exigir uma solução ou arquivo de projeto. Quando não há nenhum arquivo de projeto ou solução, você pode especificar tarefas de compilação personalizadas e iniciar parâmetros por meio de arquivos de configuração JSON. Este artigo descreve o launch.vs.json arquivo, que especifica 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 Depurar e Iniciar Configurações. Escolha a opção que mais se aproxima do seu projeto e, em seguida, use as seguintes propriedades para modificar a configuração conforme necessário. Para obter mais informações sobre como depurar projetos CMake, consulte Configurar sessões de depuração do CMake.
Propriedades padrão
| Propriedade | Tipo | Descrição |
|---|---|---|
args |
matriz | 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 compilação para aplicar as configurações. Por exemplo, Debug ou Release e as configurações a serem usadas de acordo com o modo de compilação selecionado. |
currentDir |
cadeia (de caracteres) | Especifica o caminho completo do diretório para o alvo de compilação. O diretório é detetado automaticamente, a menos que esse parâmetro seja definido. |
cwd |
cadeia (de caracteres) | Caminho completo para o diretório no sistema remoto onde o programa será executado. O padrão é "${debugInfo.defaultWorkingDirectory}". |
debugType |
cadeia (de caracteres) | Especifica o modo de depuração de acordo com o tipo de código (nativo, gerenciado ou misto). O modo é detetado automaticamente, a menos que esse parâmetro seja definido. Valores permitidos: "native", "managed", "mixed". |
env |
matriz | Especifica uma lista chave-valor 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 fontes. Você pode definir algumas variáveis em arquivos como CMakeSettings.json ou CppProperties.json e disponibilizá-las para depurar o contexto.
Visual Studio 16.4: Especifique variáveis de ambiente por destino usando a env.VARIABLE_NAME sintaxe. Para desdefinir uma variável, defina-a como "null". |
name |
cadeia (de caracteres) | Especifica o nome da entrada na lista pendente Item de inicialização. |
noDebug |
Booleano | Especifica se o programa iniciado deve ser depurado. O valor padrão para esse parâmetro é false se não for especificado. |
portName |
cadeia (de caracteres) | Especifica o nome da porta ao anexar a um processo em execução. |
program |
cadeia (de caracteres) | O comando debug a ser executado. O padrão é "${debugInfo.fullTargetPath}". |
project |
cadeia (de caracteres) | Especifica o caminho relativo para o arquivo de projeto. Normalmente, você não precisa alterar esse valor ao depurar um projeto CMake. |
projectTarget |
cadeia (de caracteres) | Especifica o destino opcional invocado durante a compilação do project. O destino deve corresponder ao nome no menu suspenso Item de Arranque. |
stopOnEntry |
Booleano | Especifica se deve ser interrompido assim que o processo é iniciado e o depurador é anexado. O valor padrão para esse parâmetro é false. |
remoteMachine |
cadeia (de caracteres) | Especifica o nome da máquina remota onde o programa é iniciado. |
type |
cadeia (de caracteres) | Especifica se o projeto é um dll ou exe. O padrão é "exe". |
Propriedades do Linux C++
| Propriedade | Tipo | Descrição |
|---|---|---|
program |
cadeia (de caracteres) | Caminho completo para o executável do programa na máquina remota. Ao usar CMake, a macro ${debugInfo.fullTargetPath} pode ser usada como o valor deste campo. |
processId |
número inteiro | ID de processo opcional para ligar o debugger ao. |
sourceFileMap |
objecto | Mapeamentos opcionais de arquivos de origem passados para o mecanismo de depuração. Formato: { "\<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 do arquivo de origem. |
additionalProperties |
cadeia (de caracteres) | Um dos sourceFileMapOptions. (Veja abaixo). |
MIMode |
cadeia (de caracteres) | 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 para adicionar ao ambiente do programa. Exemplo: [ { "name": "squid", "value": "clam" } ]. |
targetArchitecture |
cadeia (de caracteres) | A arquitetura do debuggee. A arquitetura é detetada automaticamente, a menos que esse parâmetro seja definido. Os valores permitidos são x86, arm, , arm64, mipsx64, amd64, x86_64. |
visualizerFile |
cadeia (de caracteres) | O arquivo .natvis a ser usado ao depurar esse processo. Esta opção não é compatível com a impressão formatada do GDB. Veja "showDisplayString" se você usa essa configuração. |
showDisplayString |
Booleano | Quando um visualizerFile é especificado, showDisplayString habilitará a cadeia de caracteres de exibição. Ativar essa opção pode diminuir o desempenho durante a depuração. |
remoteMachineName |
cadeia (de caracteres) | A máquina Linux remota que hospeda gdb e o programa para depurar. Use o Connection Manager para adicionar novas máquinas Linux. Ao usar CMake, a macro ${debugInfo.remoteMachineName} pode ser usada como o valor deste campo. |
miDebuggerPath |
cadeia (de caracteres) | O caminho para o depurador habilitado para MI (como gdb). Quando não especificado, ele procurará PATH primeiro pelo depurador. |
miDebuggerServerAddress |
cadeia (de caracteres) | Endereço de rede do servidor depurador com suporte 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 instalação. |
customLaunchSetupCommands |
matriz | Se fornecido, esse valor substitui 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 substitui os comandos de inicialização por nada, o que pode ser útil se o depurador estiver sendo fornecido opções de inicialização como opções de linha de comando. Exemplo: "customLaunchSetupCommands": [ { "text": "target-run", "description": "run target", "ignoreFailures": false }]. |
launchCompleteCommand |
cadeia (de caracteres) | O comando a ser executado depois que o depurador estiver totalmente configurado, para fazer com que o processo de destino seja executado. Os valores permitidos são "exec-run", "exec-continue", "None". O valor padrão é "exec-run". |
debugServerPath |
cadeia (de caracteres) | Caminho completo opcional para o servidor de depuração a ser iniciado. O padrão é null. |
debugServerArgs |
cadeia (de caracteres) | Servidor de depuração opcional args. O padrão é null. |
filterStderr |
Booleano | Pesquise o fluxo stderr para o padrão iniciado pelo servidor e registre o stderr para depurar a saída. O padrão é false. |
coreDumpPath |
cadeia (de caracteres) | Caminho completo opcional para um arquivo de despejo principal para o programa especificado. O padrão é null. |
externalConsole |
Booleano | Se verdadeiro, um console é iniciado para o depurador. Se false, nenhum console é iniciado. O padrão para essa configuração é false. Esta opção é ignorada em alguns casos por razões técnicas. |
pipeTransport |
cadeia (de caracteres) | Quando presente, esse valor indica ao depurador para conectar-se a um computador remoto usando outro executável como um canal de comunicação, que irá transmitir a entrada/saída padrão entre o Visual Studio e o depurador habilitado para MI (como o gdb). Valores permitidos: uma ou mais Opções de Transporte de Tubo. |
macros de debugInfo
As macros a seguir fornecem informações sobre o ambiente de depuração. São úteis para personalizar a configuração de lançamento da sua aplicação para depuração.
| Macro | Descrição | Exemplo |
|---|---|---|
addressSanitizerRuntimeFlags |
Flags de runtime usados para personalizar o comportamento do Sanitizador de Endereços. Usado para definir a variável "ASAN_OPTIONS"de ambiente . |
"env": {"ASAN_OPTIONS": "${addressSanitizerRuntimeFlags}:anotherFlag=true"} |
defaultWorkingDirectory |
Defina como a parte do diretório de "fullTargetPath". Se a variável VS_DEBUGGER_WORKING_DIRECTORY CMake estiver definida, então defaultWorkingDirectory será definida como esse valor, em vez disso. |
"cwd":"${debugInfo.defaultWorkingDirectory}" |
fullTargetPath |
O caminho completo para o binário que está sendo depurado. | "program": "${debugInfo.fullTargetPath}" |
linuxNatvisPath |
O caminho completo de Windows para o ficheiro VS Linux .natvis. Geralmente aparece como o valor "visualizerFile". |
|
parentProcessId |
O identificador do processo para a instância atual do Visual Studio. Usado como parâmetro para shellexec. | Veja o exemplo de pipeTransport abaixo. |
remoteMachineId |
Um identificador numérico exclusivo para a conexão com a máquina remota. Usado como parâmetro para shellexec. | Veja o exemplo de pipeTransport abaixo. |
remoteWorkspaceRoot |
Caminho do Linux para a cópia remota do espaço de trabalho. | Especifique os locais dos arquivos na máquina remota. Por exemplo: "args": ["${debugInfo.remoteWorkspaceRoot}/Data/MyInputFile.dat"] |
resolvedRemoteMachineName |
O nome da máquina remota de destino. |
"targetMachine" Valor em uma diretiva de implementação |
shellexecPath |
O caminho para o programa shellexec que o Visual Studio está usando para gerenciar a conexão de máquina remota. | Veja o exemplo de pipeTransport abaixo |
tty |
gdb redirecionará a entrada e saída para este dispositivo para o programa a ser depurado. Usado como parâmetro para gdb (-tty). | Veja o exemplo de pipeTransport abaixo. |
windowsSubsystemPath |
O caminho completo para a instância do Subsistema Windows para Linux. |
O exemplo pipeTransport abaixo mostra como usar algumas das debugInfo macros 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 C++ no Windows
Usado ao depurar e desenvolver uma aplicação numa máquina remota.
| Propriedade | Tipo | Descrição |
|---|---|---|
cwd |
cadeia (de caracteres) | O diretório de trabalho do destino na máquina remota. Ao usar CMake, a macro ${debugInfo.defaultWorkingDirectory} pode ser usada como o valor deste campo. O valor padrão é o diretório do programa/comando de depuração. |
deploy |
cadeia (de caracteres) | Especifica arquivos ou diretórios extras a serem implantados. Por exemplo:"deploy": {"sourcePath":"<Full path to source file/directory on host machine>", "targetPath":"<Full destination path to file/directory on target machine>"} |
deployDirectory |
cadeia (de caracteres) | O local na máquina remota onde as saídas do projeto são implantadas automaticamente. O padrão é "C:\Windows Default Deploy Directory\<name of app>". |
deployDebugRuntimeLibraries |
cadeia (de caracteres) | Especifica se as bibliotecas de depuração em tempo de execução devem ser implantadas na plataforma ativa. Define-se por "true" se o tipo de configuração ativo for "Debug". |
deployRuntimeLibraries |
cadeia (de caracteres) | Especifica se devem ser implantadas as bibliotecas de tempo de execução para a plataforma ativa. O padrão é "true" se o configurationType ativo for "MinSizeRel", "RelWithDebInfo" ou "Release". |
disableDeploy |
Booleano | Especifica se os ficheiros devem ser implantados. |
remoteMachineName |
cadeia (de caracteres) | Especifica o nome da máquina remota ARM64 Windows onde o programa é iniciado. Pode ser o nome do servidor ou o endereço IP da máquina remota. |
authenticationType |
cadeia (de caracteres) | Especifica o tipo de conexão remota. Os valores possíveis são "windows" e "none". A predefinição é "windows". Esse valor deve corresponder à configuração de autenticação especificada no depurador remoto que está sendo executado na máquina remota. |
Iniciar comandos de configuração
Usado com a setupCommands propriedade:
| Propriedade | Tipo | Descrição |
|---|---|---|
text |
cadeia (de caracteres) | O comando do depurador a ser executado. |
description |
cadeia (de caracteres) | Descrição opcional para o comando. |
ignoreFailures |
Booleano | Se verdadeiro, as falhas do comando devem ser ignoradas. O padrão é false. |
Opções de transporte de tubos
Usado com a pipeTransport propriedade:
| Propriedade | Tipo | Descrição |
|---|---|---|
pipeCwd |
cadeia (de caracteres) | O caminho totalmente qualificado para o diretório de trabalho para o programa de tubo. |
pipeProgram |
cadeia (de caracteres) | O comando completamente qualificado de canalização para executar. |
pipeArgs |
matriz | Argumentos de linha de comando passados para o programa de canalização para configurar a conexão. |
debuggerPath |
cadeia (de caracteres) | O caminho completo para o depurador na máquina de destino, por exemplo /usr/bin/gdb. |
pipeEnv |
objecto | Variáveis de ambiente passadas para o programa de canalização. |
quoteArgs |
Booleano | Se argumentos individuais contiverem caracteres (como espaços ou tabulações), ele deve ser citado? Se false, o comando do depurador não será mais automaticamente colocado entre aspas. A predefinição é true. |
Opções do mapa do arquivo de origem
Utilize com a propriedade sourceFileMap:
| Propriedade | Tipo | Descrição |
|---|---|---|
editorPath |
cadeia (de caracteres) | A localização do código-fonte a localizar pelo editor. |
useForBreakpoints |
Booleano | Ao definir pontos de interrupção, esse mapeamento de origem deve ser usado. Se false, apenas o nome do arquivo e o número da linha são usados para definir 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 da 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. A predefinição é true. |