Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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 di riga di comando che vengono 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 cartella nel sistema remoto in cui verrà eseguito il programma. Il valore predefinito è "${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 singolo target usando la sintassi env.VARIABLE_NAME. Per annullare una variabile, impostarla su "null". |
name |
corda | Specifica il nome della voce nel menu a discesa Startup Item. |
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 di project. La destinazione deve corrispondere al nome nell'elenco a discesa Elemento di avvio. |
stopOnEntry |
booleano | Specifica se interrompere 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 o un exe. Il valore predefinito è "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 del processo facoltativo a cui collegare il debugger. |
sourceFileMap |
oggetto | Mappature opzionali dei file sorgente passate 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 ulteriori informazioni, vedere Opzioni mappa file sorgente. |
additionalProperties |
corda | Una delle opzioni di 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". |
debuginfod |
oggetto | Controlla come gdb usa debuginfod per scaricare i simboli di debug mancanti e i file di origine dai server di debuginfod. Visual Studio si applica questa opzione solo quando MIMode è gdb. Per altre informazioni, vedere Opzioni di debuginfod. |
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 del programma in fase 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. Consulta "showDisplayString" se utilizzi 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 | Il percorso per il debugger abilitato per MI (ad esempio, gdb). Se non specificato, eseguirà prima la ricerca di PATH per il debugger. |
miDebuggerServerAddress |
corda | Indirizzo di rete del server debugger abilitato MI 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 target. Un elenco di comandi vuoto sostituisce i comandi di avvio con un elenco vuoto, il che può essere utile se al debugger vengono fornite 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 opzionale per avviare il server di debug. L'impostazione predefinita è null. |
debugServerArgs |
corda | Argomenti del server di debug facoltativi. L'impostazione predefinita è null. |
filterStderr |
booleano | Cercare nel flusso stderr lo schema di avvio del server e registrare stderr per eseguire il debug dell'output. Il valore predefinito è false. |
coreDumpPath |
corda | Percorso completo facoltativo per un file di core dump 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. |
debugInfo macro
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 |
Imposta la 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 di Windows al 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 dello spazio 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}"
]
}
Proprietà di debug e distribuzione remoti per C++ su Windows
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 | Posizione sul 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. Viene impostato su "true" come predefinito se il configurationType attivo è "Debug". |
deployRuntimeLibraries |
corda | Specifica se distribuire le librerie di runtime per la piattaforma attiva. L'impostazione predefinita è "true" se il 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 vero, gli errori del comando devono essere ignorati. Il valore predefinito è false. |
Opzioni di trasporto tubi
Usato con la pipeTransport proprietà :
| Proprietà | TIPO | Descrizione |
|---|---|---|
pipeCwd |
corda | Percorso completo della directory di lavoro per il programma pipe. |
pipeProgram |
corda | Comando pipe completamente qualificato 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), devono essere racchiusi tra virgolette? Se false, il comando del debugger non verrà più racchiuso automaticamente tra virgolette. Il valore predefinito è true. |
Opzioni per la mappatura del file di origine
Usare con la sourceFileMap proprietà :
| Proprietà | TIPO | Descrizione |
|---|---|---|
editorPath |
corda | Il percorso del codice sorgente da individuare per l'editor. |
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 è attivato, i punti di interruzione verranno impostati con il percorso completo del file e del numero di riga solo quando viene usata questa mappatura del sorgente. 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. |
Opzioni di debuginfod
Utilizzare con la debuginfod proprietà per controllare il modo in cui gdb scarica i simboli di debug dai server di debuginfod. Nei sistemi Linux che configurano debuginfod, ad esempio Ubuntu, Fedora o Arch Linux, questa opzione consente di gdb recuperare automaticamente i simboli di debug e i file di origine dai server di debuginfod della distribuzione in modo da non dover installare manualmente i pacchetti di simboli di debug. Visual Studio si applica questa opzione solo quando MIMode è gdb.
| Proprietà | TIPO | Descrizione |
|---|---|---|
enabled |
booleano | Quando true, gdb interroga i server debuginfod per ottenere le informazioni di debug e i file sorgente mancanti. Il valore predefinito è false, che consente di evitare ritardi causati dalle richieste di rete. |
timeout |
numero intero | Il timeout in secondi per le richieste al server debuginfod. Il valore predefinito è 30. Impostarlo su 0 per usare il timeout predefinito di gdb. |
L'esempio seguente abilita il supporto del server debuginfod e imposta il timeout su 10 secondi:
"debuginfod": {
"enabled": true,
"timeout": 10
}