Condividi tramite


launch.vs.json Riferimento allo schema (C++)

In Visual Studio 2017 e versioni successive è possibile aprire e compilare codice da quasi qualsiasi progetto basato su directory senza richiedere una soluzione o un file di progetto. Quando non è presente alcun file di progetto o di soluzione, è possibile specificare attività di compilazione personalizzate e avviare parametri tramite file di configurazione JSON. Questo articolo descrive il launch.vs.json file , che specifica i parametri di debug. Per altre informazioni sulla funzionalità "Apri cartella", vedere Sviluppare codice in Visual Studio senza progetti o soluzioni.

Per creare il file, fare clic con il pulsante destro del mouse su un file eseguibile in Esplora soluzioni e scegliere Impostazioni debug e avvio. Scegliere l'opzione più adatta al progetto e quindi usare le proprietà seguenti per modificare la configurazione in base alle esigenze. Per altre informazioni sul debug di progetti CMake, vedere Configurare le sessioni di debug di CMake.

Proprietà predefinite

Proprietà TIPO Descrizione
args elenco Specifica gli argomenti della riga di comando passati al programma avviato.
buildConfigurations elenco Coppia chiave-valore che specifica il nome della modalità di compilazione per applicare le configurazioni. Ad esempio, Debug o Release e le configurazioni da usare in base alla modalità di compilazione selezionata.
currentDir corda Specifica il percorso completo della directory alla destinazione di compilazione. La directory viene rilevata automaticamente a meno che questo parametro non sia impostato.
cwd corda Percorso completo della directory nel sistema remoto in cui verrà eseguito il programma. L'impostazione predefinita è "${debugInfo.defaultWorkingDirectory}"
debugType corda Specifica la modalità di debug in base al tipo di codice (nativo, gestito o misto). La modalità viene rilevata automaticamente a meno che questo parametro non sia impostato. Valori consentiti: "native", "managed", "mixed".
env elenco Specifica un elenco chiave-valore delle variabili di ambiente personalizzate. Ad esempio: env:{"myEnv":"myVal"}.
inheritEnvironments elenco Specifica un set di variabili di ambiente ereditate da più origini. È possibile definire alcune variabili in file come CMakeSettings.json o CppProperties.json e renderle disponibili per il contesto di debug. Visual Studio 16.4: specificare le variabili di ambiente per ogni destinazione usando la env.VARIABLE_NAME sintassi . Per annullare l'impostazione di una variabile su "null".
name corda Specifica il nome della voce nell'elenco a discesa Elemento di avvio.
noDebug booleano Specifica se eseguire il debug del programma avviato. Il valore predefinito per questo parametro è false se non specificato.
portName corda Specifica il nome della porta durante il collegamento a un processo in esecuzione.
program corda Comando di debug da eseguire. Il valore predefinito è "${debugInfo.fullTargetPath}".
project corda Specifica il percorso relativo del file di progetto. In genere, non è necessario modificare questo valore durante il debug di un progetto CMake.
projectTarget corda Specifica la destinazione facoltativa richiamata durante la compilazione projectdi . La destinazione deve corrispondere al nome nell'elenco a discesa Elemento di avvio.
stopOnEntry booleano Specifica se interrompere un'interruzione non appena viene avviato il processo e il debugger viene collegato. Il valore predefinito per questo parametro è false.
remoteMachine corda Specifica il nome del computer remoto in cui viene avviato il programma.
type corda Specifica se il progetto è un dll oggetto o exe l'impostazione predefinita per .exe

Proprietà linux C++

Proprietà TIPO Descrizione
program corda Percorso completo del programma eseguibile nel computer remoto. Quando si usa CMake, la macro ${debugInfo.fullTargetPath} può essere usata come valore di questo campo.
processId numero intero ID processo facoltativo a cui collegare il debugger.
sourceFileMap oggetto Mapping facoltativi dei file di origine passati al motore di debug. Formato: { "\<Compiler source location>": "\<Editor source location>" } o { "\<Compiler source location>": { "editorPath": "\<Editor source location>", "useForBreakpoints": true } }. Esempio: { "/home/user/foo": "C:\\foo" } o { "/home/user/foo": { "editorPath": "c:\\foo", "useForBreakpoints": true } }. Per altre informazioni, vedere Opzioni mappa file di origine.
additionalProperties corda Uno degli elementi sourceFileMapOptions. come illustrato più avanti.
MIMode corda Indica il tipo di debugger della console abilitato per MI a cui si connetterà MIDebugEngine. I valori consentiti sono "gdb", "lldb".
args elenco Argomenti della riga di comando passati al programma.
environment elenco Variabili di ambiente da aggiungere all'ambiente per il programma. Esempio: [ { "name": "squid", "value": "clam" } ].
targetArchitecture corda Architettura dell'oggetto di debug. L'architettura viene rilevata automaticamente a meno che questo parametro non sia impostato. I valori consentiti sono x86, arm, arm64mips, x64, , amd64, . x86_64
visualizerFile corda File natvis da utilizzare durante il debug di questo processo. Questa opzione non è compatibile con la stampa di GDB. Verificare "showDisplayString" se si usa questa impostazione.
showDisplayString booleano Quando si specifica un visualizerFile, showDisplayString abiliterà la stringa di visualizzazione. L'attivazione di questa opzione può rallentare le prestazioni durante il debug.
remoteMachineName corda Computer Linux remoto che ospita gdb e il programma di cui eseguire il debug. Usare Gestione connessioni per aggiungere nuovi computer Linux. Quando si usa CMake, la macro ${debugInfo.remoteMachineName} può essere usata come valore di questo campo.
miDebuggerPath corda Percorso del debugger abilitato per l'istanza gestita dell'istanza gestita, ad esempio gdb. Se non specificato, eseguirà prima la ricerca di PATH per il debugger.
miDebuggerServerAddress corda Indirizzo di rete del server debugger abilitato per l'istanza gestita a cui connettersi. Esempio: "localhost:1234".
setupCommands elenco Uno o più comandi GDB/LLDB da eseguire per configurare il debugger sottostante. Esempio: "setupCommands": [ { "text": "-enable-pretty-printing", "description": "Enable GDB pretty printing", "ignoreFailures": true }]. Per altre informazioni, vedere Avviare i comandi di installazione.
customLaunchSetupCommands elenco Se specificato, questo valore sostituisce i comandi predefiniti usati per avviare una destinazione con altri comandi. Ad esempio, usare "-target-attach" per collegarsi a un processo di destinazione. Un elenco di comandi vuoto sostituisce i comandi di avvio senza nulla, che può essere utile se il debugger viene fornito opzioni di avvio come opzioni della riga di comando. Esempio: "customLaunchSetupCommands": [ { "text": "target-run", "description": "run target", "ignoreFailures": false }].
launchCompleteCommand corda Il comando da eseguire dopo la configurazione completa del debugger, in modo che il processo di destinazione venga eseguito. I valori consentiti sono "exec-run", "exec-continue", "None". Il valore predefinito è "exec-run".
debugServerPath corda Percorso completo facoltativo del server di debug da avviare. L'impostazione predefinita è null.
debugServerArgs corda Argomenti del server di debug facoltativi. L'impostazione predefinita è null.
filterStderr booleano Cercare stderr stream per il modello avviato dal server e log stderr per eseguire il debug dell'output. Il valore predefinito è false.
coreDumpPath corda Percorso completo facoltativo di un file di dump principale per il programma specificato. L'impostazione predefinita è null.
externalConsole booleano Se true, viene avviata una console per il debug. Se false, non viene avviata alcuna console. Il valore predefinito per questa impostazione è false. Questa opzione viene ignorata in alcuni casi per motivi tecnici.
pipeTransport corda Quando presente, questo valore indica al debugger di connettersi a un computer remoto usando un altro eseguibile come pipe che invierà input/output standard tra Visual Studio e il debugger abilitato per mi, ad esempio gdb. Valori consentiti: una o più opzioni di trasporto pipe.

macro debugInfo

Le macro seguenti forniscono informazioni sull'ambiente di debug. Sono utili per personalizzare l'avvio dell'app per il debug.

Macro Descrizione Esempio
addressSanitizerRuntimeFlags Flag di runtime usati per personalizzare il comportamento del servizio di purificazione degli indirizzi. Usato per impostare la variabile "ASAN_OPTIONS"di ambiente . "env": {"ASAN_OPTIONS": "${addressSanitizerRuntimeFlags}:anotherFlag=true"}
defaultWorkingDirectory Impostare sulla parte della directory di "fullTargetPath". Se la variabile VS_DEBUGGER_WORKING_DIRECTORY CMake è definita, defaultWorkingDirectory viene invece impostata su tale valore. "cwd":"${debugInfo.defaultWorkingDirectory}"
fullTargetPath Percorso completo del file binario di cui viene eseguito il debug. "program": "${debugInfo.fullTargetPath}"
linuxNatvisPath Percorso completo delle finestre del file vs linux .natvis . In genere viene visualizzato come valore "visualizerFile".
parentProcessId ID del processo per l'istanza corrente di Visual Studio. Usato come parametro per shellexec. Vedere l'esempio pipeTransport seguente.
remoteMachineId Identificatore numerico univoco per la connessione al computer remoto. Usato come parametro per shellexec. Vedere l'esempio pipeTransport seguente.
remoteWorkspaceRoot Percorso Linux della copia remota dell'area di lavoro. Specificare i percorsi dei file nel computer remoto. Ad esempio: "args": ["${debugInfo.remoteWorkspaceRoot}/Data/MyInputFile.dat"]
resolvedRemoteMachineName Nome del computer remoto di destinazione. "targetMachine" valore in una direttiva di distribuzione
shellexecPath Percorso del programma shellexec usato da Visual Studio per gestire la connessione al computer remoto. Vedere l'esempio pipeTransport seguente
tty gdb reindirizzerà l'input e l'output a questo dispositivo per il programma sottoposto a debug. Usato come parametro per gdb (-tty). Vedere l'esempio pipeTransport seguente.
windowsSubsystemPath Percorso completo dell'istanza di sottosistema Windows per Linux.

L'esempio pipeTransport seguente illustra come usare alcune delle debugInfo macro definite in precedenza:

"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}"
    ]
    }

Debug remoto di Windows C++ e distribuzione delle proprietà

Usato durante il debug e la distribuzione di un'app in un computer remoto.

Proprietà TIPO Descrizione
cwd corda Directory di lavoro della destinazione nel computer remoto. Quando si usa CMake, la macro ${debugInfo.defaultWorkingDirectory} può essere usata come valore di questo campo. Il valore predefinito è la directory del programma/comando di debug.
deploy corda Specifica file o directory aggiuntivi da distribuire. Ad esempio:
"deploy": {"sourcePath":"<Full path to source file/directory on host machine>", "targetPath":"<Full destination path to file/directory on target machine>"}
deployDirectory corda Percorso nel computer remoto in cui vengono distribuiti automaticamente gli output del progetto. Il valore predefinito è "C:\Windows Default Deploy Directory\<name of app>
deployDebugRuntimeLibraries corda Specifica se distribuire le librerie di runtime di debug per la piattaforma attiva. L'impostazione "true" predefinita è se configurationType attivo è "Debug"
deployRuntimeLibraries corda Specifica se distribuire le librerie di runtime per la piattaforma attiva. L'impostazione predefinita è "true" se configurationType attivo è "MinSizeRel", "RelWithDebInfo"o "Release".
disableDeploy booleano Specifica se i file devono essere distribuiti.
remoteMachineName corda Specifica il nome del computer Windows ARM64 remoto in cui viene avviato il programma. Può essere il nome del server o l'indirizzo IP del computer remoto.
authenticationType corda Specifica il tipo di connessione remota. I valori possibili sono "windows" e "none". Il valore predefinito è "windows". Questo valore deve corrispondere all'impostazione di autenticazione specificata nel debugger remoto in esecuzione nel computer remoto.

Avviare i comandi di installazione

Usato con la setupCommands proprietà :

Proprietà TIPO Descrizione
text corda Comando del debugger da eseguire.
description corda Descrizione facoltativa per il comando.
ignoreFailures booleano Se true, gli errori del comando devono essere ignorati. Il valore predefinito è false.

Opzioni di trasporto pipe

Usato con la pipeTransport proprietà :

Proprietà TIPO Descrizione
pipeCwd corda Percorso completo della directory di lavoro per il programma pipe.
pipeProgram corda Comando pipe completo da eseguire.
pipeArgs elenco Argomenti della riga di comando passati al programma pipe per configurare la connessione.
debuggerPath corda Percorso completo del debugger nel computer di destinazione, ad esempio /usr/bin/gdb.
pipeEnv oggetto Variabili di ambiente passate al programma pipe.
quoteArgs booleano Se i singoli argomenti contengono caratteri (ad esempio spazi o tabulazioni), deve essere racchiuso tra virgolette? Se false, il comando del debugger non verrà più racchiuso automaticamente tra virgolette. Il valore predefinito è true.

Opzioni mappa file di origine

Usare con la sourceFileMap proprietà :

Proprietà TIPO Descrizione
editorPath corda Percorso del codice sorgente per l'editor da individuare.
useForBreakpoints booleano Quando si impostano punti di interruzione, è necessario usare questo mapping di origine. Se false, vengono usati solo il nome file e il numero di riga per l'impostazione dei punti di interruzione. Se true, i punti di interruzione verranno impostati con il percorso completo del file e del numero di riga solo quando viene usato questo mapping di origine. In caso contrario, quando si impostano punti di interruzione, verrà usato solo il nome del file e il numero di riga. Il valore predefinito è true.