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à | Type | Descrizione |
---|---|---|
args |
array | Specifica gli argomenti della riga di comando passati al programma avviato. |
buildConfigurations |
array | 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 |
string | Specifica il percorso completo della directory alla destinazione di compilazione. La directory viene rilevata automaticamente a meno che questo parametro non sia impostato. |
cwd |
string | Percorso completo della directory nel sistema remoto in cui verrà eseguito il programma. L'impostazione predefinita è "${debugInfo.defaultWorkingDirectory}" |
debugType |
string | 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 |
array | Specifica un elenco chiave-valore delle variabili di ambiente personalizzate. Ad esempio: env:{"myEnv":"myVal"} . |
inheritEnvironments |
array | 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 |
string | Specifica il nome della voce nell'elenco a discesa Elemento di avvio. |
noDebug |
boolean | Specifica se eseguire il debug del programma avviato. Il valore predefinito per questo parametro è false se non specificato. |
portName |
string | Specifica il nome della porta durante il collegamento a un processo in esecuzione. |
program |
string | Comando di debug da eseguire. Il valore predefinito è "${debugInfo.fullTargetPath}" . |
project |
string | Specifica il percorso relativo del file di progetto. In genere, non è necessario modificare questo valore durante il debug di un progetto CMake. |
projectTarget |
string | Specifica la destinazione facoltativa richiamata durante la compilazione project di . La destinazione deve corrispondere al nome nell'elenco a discesa Elemento di avvio. |
stopOnEntry |
boolean | Specifica se interrompere un'interruzione non appena viene avviato il processo e il debugger viene collegato. Il valore predefinito per questo parametro è false . |
remoteMachine |
string | Specifica il nome del computer remoto in cui viene avviato il programma. |
type |
string | Specifica se il progetto è un dll oggetto o exe l'impostazione predefinita per .exe |
Proprietà linux C++
Proprietà | Type | Descrizione |
---|---|---|
program |
stringa | 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 |
integer | 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 |
string | Uno degli elementi sourceFileMapOptions. come illustrato più avanti. |
MIMode |
string | Indica il tipo di debugger della console abilitato per MI a cui si connetterà MIDebugEngine. I valori consentiti sono "gdb" , "lldb" . |
args |
array | Argomenti della riga di comando passati al programma. |
environment |
array | Variabili di ambiente da aggiungere all'ambiente per il programma. Esempio: [ { "name": "squid", "value": "clam" } ] . |
targetArchitecture |
string | Architettura dell'oggetto di debug. L'architettura viene rilevata automaticamente a meno che questo parametro non sia impostato. I valori consentiti sono x86 , arm , mips arm64 , x64 , , amd64 , . x86_64 |
visualizerFile |
string | 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 |
boolean | Quando si specifica un visualizerFile, showDisplayString abiliterà la stringa di visualizzazione. L'attivazione di questa opzione può rallentare le prestazioni durante il debug. |
remoteMachineName |
string | 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 |
string | 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 |
string | Indirizzo di rete del server debugger abilitato per l'istanza gestita a cui connettersi. Esempio: "localhost:1234" . |
setupCommands |
array | 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 |
array | 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 |
string | 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 |
string | Percorso completo facoltativo del server di debug da avviare. L'impostazione predefinita è null. |
debugServerArgs |
string | Argomenti del server di debug facoltativi. L'impostazione predefinita è null. |
filterStderr |
boolean | Cercare stderr stream per il modello avviato dal server e log stderr per eseguire il debug dell'output. Il valore predefinito è false . |
coreDumpPath |
string | Percorso completo facoltativo di un file di dump principale per il programma specificato. L'impostazione predefinita è null. |
externalConsole | boolean | 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 |
string | 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à | Type | Descrizione |
---|---|---|
cwd |
stringa | 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 |
string | 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 |
string | 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 |
string | Specifica se distribuire le librerie di runtime di debug per la piattaforma attiva. L'impostazione "true" predefinita è se configurationType attivo è "Debug" |
deployRuntimeLibraries |
string | Specifica se distribuire le librerie di runtime per la piattaforma attiva. L'impostazione predefinita è "true" se configurationType attivo è "MinSizeRel" , "RelWithDebInfo" o "Release" . |
disableDeploy |
boolean | Specifica se i file devono essere distribuiti. |
remoteMachineName |
string | 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 |
string | 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à | Type | Descrizione |
---|---|---|
text |
stringa | Comando del debugger da eseguire. |
description |
string | Descrizione facoltativa per il comando. |
ignoreFailures |
boolean | Se true, gli errori del comando devono essere ignorati. Il valore predefinito è false . |
Opzioni di trasporto pipe
Usato con la pipeTransport
proprietà :
Proprietà | Type | Descrizione |
---|---|---|
pipeCwd |
stringa | Percorso completo della directory di lavoro per il programma pipe. |
pipeProgram |
string | Comando pipe completo da eseguire. |
pipeArgs |
array | Argomenti della riga di comando passati al programma pipe per configurare la connessione. |
debuggerPath |
string | Percorso completo del debugger nel computer di destinazione, ad esempio /usr/bin/gdb. |
pipeEnv |
oggetto | Variabili di ambiente passate al programma pipe. |
quoteArgs |
boolean | 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à | Type | Descrizione |
---|---|---|
editorPath |
stringa | Percorso del codice sorgente per l'editor da individuare. |
useForBreakpoints |
boolean | 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 . |