Delen via


launch.vs.json schemareferentie (C++)

In Visual Studio 2017 en latere versies kunt u code openen en bouwen vanuit vrijwel elk mapproject zonder dat hiervoor een oplossing of projectbestand is vereist. Wanneer er geen project- of oplossingsbestand is, kunt u aangepaste buildtaken opgeven en parameters starten via JSON-configuratiebestanden. In dit artikel wordt het launch.vs.json bestand beschreven, dat parameters voor foutopsporing aangeeft. Zie Code ontwikkelen in Visual Studio zonder projecten of oplossingen voor meer informatie over de functie Map openen.

Als u het bestand wilt maken, klikt u met de rechtermuisknop op een uitvoerbaar bestand in Solution Explorer en kiest u Debug and Launch Settings. Kies de optie die het meest overeenkomt met uw project en gebruik vervolgens de volgende eigenschappen om de configuratie zo nodig te wijzigen. Zie CMake-foutopsporingssessies configureren voor meer informatie over het opsporen van fouten in CMake-projecten.

Standaardeigenschappen

Vastgoed Typologie Beschrijving
args gegevensreeks Hiermee specifieert u de opdrachtregelargumenten die worden doorgegeven aan het programma dat wordt gestart.
buildConfigurations gegevensreeks Een sleutel-waardepaar waarmee de naam van de buildmodus wordt opgegeven om de configuraties toe te passen. Bijvoorbeeld, Debug of Release, en de configuraties die volgens de geselecteerde buildmodus moeten worden gebruikt.
currentDir touw Hiermee geeft u het volledige mappad naar het builddoel. De map wordt automatisch gedetecteerd, tenzij deze parameter is ingesteld.
cwd touw Volledig pad naar de map op het externe systeem waarop het programma wordt uitgevoerd. Standaardwaarde is "${debugInfo.defaultWorkingDirectory}".
debugType touw Hiermee geeft u de foutopsporingsmodus op volgens het type code (systeemeigen, beheerd of gemengd). De modus wordt automatisch gedetecteerd, tenzij deze parameter is ingesteld. Toegestane waarden: "native", "managed", "mixed".
env gegevensreeks Hiermee geeft u een lijst met sleutelwaarden van aangepaste omgevingsvariabelen. Voorbeeld: env:{"myEnv":"myVal"}.
inheritEnvironments gegevensreeks Hiermee geeft u een set omgevingsvariabelen die zijn overgenomen van meerdere bronnen. U kunt bepaalde variabelen definiëren in bestanden zoals CMakeSettings.json of CppProperties.json beschikbaar maken voor foutopsporingscontext. Visual Studio 16.4: Geef omgevingsvariabelen per doel op met behulp van de env.VARIABLE_NAME syntaxis. Als u een variabele wilt opheffen, stelt u deze in op "null".
name touw Hiermee geeft u de naam van de vermelding in de vervolgkeuzelijst Opstartitem op.
noDebug booleaan Hiermee geeft u op of fouten in het gestarte programma moeten worden opgespoord. De standaardwaarde voor deze parameter is false als deze niet is opgegeven.
portName touw Hiermee geeft u de naam van de poort op bij het verbinden met een actief proces.
program touw De opdracht voor foutopsporing die moet worden uitgevoerd. Standaardwaarde is "${debugInfo.fullTargetPath}".
project touw Hiermee geeft u het relatieve pad naar het projectbestand. Normaal gesproken hoeft u deze waarde niet te wijzigen bij het opsporen van fouten in een CMake-project.
projectTarget touw Hiermee geeft u het optionele doel aan dat wordt aangeroepen bij het bouwen project. Het doel moet overeenkomen met de naam in de keuzelijst van het Opstartitem.
stopOnEntry booleaan Hiermee geeft u op of er direct een onderbreking moet plaatsvinden zodra het proces is gestart en de debugger gekoppeld is. De standaardwaarde voor deze parameter is false.
remoteMachine touw Hiermee geeft u de naam van de externe computer waarop het programma wordt gestart.
type touw Bepaalt of het project een dll of een exe is. Standaardwaarde is "exe".

C++ Linux-eigenschappen

Vastgoed Typologie Beschrijving
program touw Volledig pad naar uitvoerbaar programma op de externe computer. Wanneer u CMake gebruikt, kan de macro ${debugInfo.fullTargetPath} worden gebruikt als de waarde van dit veld.
processId geheel getal Optionele proces-id waaraan het foutopsporingsprogramma moet worden gekoppeld.
sourceFileMap Voorwerp Optionele bronbestandtoewijzingen die doorgegeven worden aan de debugengine. Formaat: { "\<Compiler source location>": "\<Editor source location>" } of { "\<Compiler source location>": { "editorPath": "\<Editor source location>", "useForBreakpoints": true } }. Voorbeeld: { "/home/user/foo": "C:\\foo" } of { "/home/user/foo": { "editorPath": "c:\\foo", "useForBreakpoints": true } }. Zie Opties voor bronbestandstoewijzing voor meer informatie.
additionalProperties touw Een van de sourceFileMapOptions. (Zie hieronder.)
MIMode touw Geeft het type MI-compatibele console-foutopsporingsprogramma aan waarmee de MIDebugEngine verbinding zal maken. Toegestane waarden zijn "gdb", "lldb".
args gegevensreeks Opdrachtregelargumenten doorgegeven aan het programma.
environment gegevensreeks Omgevingsvariabelen die moeten worden toegevoegd aan de omgeving voor het programma. Voorbeeld: [ { "name": "squid", "value": "clam" } ].
targetArchitecture touw De architectuur van de foutopsporing. De architectuur wordt automatisch gedetecteerd, tenzij deze parameter is ingesteld. Toegestane waarden zijnx86, arm, arm64, mips, x64, , amd64. x86_64
visualizerFile touw Het NATVIS-bestand dat moet worden gebruikt bij het opsporen van fouten in dit proces. Deze optie is niet compatibel met het mooi afdrukken van GDB. Kijk "showDisplayString" of u deze instelling gebruikt.
showDisplayString booleaan Wanneer een visualizerFile is opgegeven, showDisplayString zal de weergavetekenreeks inschakelen. Als u deze optie inschakelt, kunnen de prestaties tijdens foutopsporing worden vertraagd.
remoteMachineName touw De externe Linux-machine die als host fungeert voor gdb en het programma voor foutopsporing. Gebruik Connection Manager voor het toevoegen van nieuwe Linux-machines. Wanneer u CMake gebruikt, kan de macro ${debugInfo.remoteMachineName} worden gebruikt als de waarde van dit veld.
miDebuggerPath touw Het pad naar het foutopsporingsprogramma met MI-functionaliteit (zoals gdb). Wanneer u dit niet hebt opgegeven, wordt eerst in PATH gezocht naar het foutopsporingsprogramma.
miDebuggerServerAddress touw Netwerkadres van de MI-ingeschakelde debugserver waarmee verbinding moet worden gemaakt. Voorbeeld: "localhost:1234".
setupCommands gegevensreeks Een of meer GDB/LLDB-opdrachten die moeten worden uitgevoerd om het onderliggende foutopsporingsprogramma in te stellen. Voorbeeld: "setupCommands": [ { "text": "-enable-pretty-printing", "description": "Enable GDB pretty printing", "ignoreFailures": true }]. Zie Setup-opdrachten starten voor meer informatie.
customLaunchSetupCommands gegevensreeks Indien opgegeven, vervangt deze waarde de standaardopdrachten die worden gebruikt om een doel te starten met een aantal andere opdrachten. Gebruik bijvoorbeeld '-target-attach' om te koppelen aan een doelproces. Een lege opdrachtlijst vervangt de startopdrachten door niets, wat handig kan zijn als het foutopsporingsprogramma startopties krijgt als opdrachtregelopties. Voorbeeld: "customLaunchSetupCommands": [ { "text": "target-run", "description": "run target", "ignoreFailures": false }].
launchCompleteCommand touw De opdracht die moet worden uitgevoerd nadat het foutopsporingsprogramma volledig is ingesteld, zodat het doelproces wordt uitgevoerd. Toegestane waarden zijn 'exec-run', 'exec-continue', 'None'. De standaardwaarde is 'exec-run'.
debugServerPath touw Optioneel volledig pad naar de debugserver om te starten. De standaardwaarde is null.
debugServerArgs touw Optionele foutopsporingsserver args. De standaardwaarde is null.
filterStderr booleaan Doorzoek de stderr-stream op het server-startpatroon en registreer stderr in de foutopsporingsuitvoer. Standaardwaarde is false.
coreDumpPath touw Optioneel volledig pad naar een kerndumpbestand voor het opgegeven programma. De standaardwaarde is null.
externalConsole booleaan Indien waar, wordt er een console gestart voor de foutopsporing. Als false geen console wordt gestart. De standaardinstelling voor deze instelling is false. Deze optie wordt in sommige gevallen om technische redenen genegeerd.
pipeTransport touw Als deze waarde aanwezig is, vertelt deze waarde het foutopsporingsprogramma om verbinding te maken met een externe computer met een ander uitvoerbaar bestand als een pijp die standaardinvoer/uitvoer tussen Visual Studio en het foutopsporingsprogramma met MI-functionaliteit (zoals gdb) doorgeeft. Toegestane waarden: een of meer pijptransportopties.

macro's voor debugginginformatie

De volgende macro's bevatten informatie over de foutopsporingsomgeving. Ze zijn handig voor het aanpassen van de start van uw app voor foutopsporing.

Macroniveau Beschrijving Voorbeeld
addressSanitizerRuntimeFlags Vlaggen tijdens uitvoering die worden gebruikt om het gedrag van de adres-sanitizer aan te passen. Wordt gebruikt om de omgevingsvariabele "ASAN_OPTIONS"in te stellen. "env": {"ASAN_OPTIONS": "${addressSanitizerRuntimeFlags}:anotherFlag=true"}
defaultWorkingDirectory Ingesteld op het mapgedeelte van "fullTargetPath". Als de CMake-variabele VS_DEBUGGER_WORKING_DIRECTORY is gedefinieerd, defaultWorkingDirectory wordt deze in plaats daarvan ingesteld op die waarde. "cwd":"${debugInfo.defaultWorkingDirectory}"
fullTargetPath Het volledige pad naar de binaire die wordt gedebugged. "program": "${debugInfo.fullTargetPath}"
linuxNatvisPath Het volledige Windows-pad naar het VS Linux-bestand .natvis . Wordt meestal weergegeven als de waarde "visualizerFile".
parentProcessId De proces-id voor het huidige Visual Studio-exemplaar. Wordt gebruikt als parameter voor shellexec. Zie het pipeTransport-voorbeeld hieronder.
remoteMachineId Een unieke, numerieke id voor de verbinding met de externe computer. Wordt gebruikt als parameter voor shellexec. Zie het pipeTransport-voorbeeld hieronder.
remoteWorkspaceRoot Linux-pad naar de externe kopie van de werkruimte. Geef bestandslocaties op de externe computer op. Bijvoorbeeld: "args": ["${debugInfo.remoteWorkspaceRoot}/Data/MyInputFile.dat"]
resolvedRemoteMachineName De naam van de externe doelcomputer. "targetMachine" waarde in een implementatierichtlijn
shellexecPath Het pad naar het shellexec-programma dat Visual Studio gebruikt voor het beheren van de externe computerverbinding. Zie het pipeTransport-voorbeeld hieronder
tty gdb leidt invoer en uitvoer om naar dit apparaat voor het programma dat wordt gedebugd. Wordt gebruikt als parameter voor gdb (-tty). Zie het pipeTransport-voorbeeld hieronder.
windowsSubsystemPath Het volledige pad naar het Windows-subsysteem voor het Linux-exemplaar.

In het onderstaande pipeTransport-voorbeeld ziet u hoe u enkele van de debugInfo hierboven gedefinieerde macro's gebruikt:

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

Eigenschappen voor externe foutopsporing en implementatie in C++ Windows

Wordt gebruikt bij het debuggen en deployen van een app op een externe computer.

Vastgoed Typologie Beschrijving
cwd touw De werkmap van het doel op de externe computer. Wanneer u CMake gebruikt, kan de macro ${debugInfo.defaultWorkingDirectory} worden gebruikt als de waarde van dit veld. De standaardwaarde is de map van het foutopsporingsprogramma/de opdracht.
deploy touw Hiermee geeft u extra bestanden of mappen die moeten worden geïmplementeerd. Voorbeeld:
"deploy": {"sourcePath":"<Full path to source file/directory on host machine>", "targetPath":"<Full destination path to file/directory on target machine>"}
deployDirectory touw De locatie op de externe computer waarop projectuitvoer automatisch wordt geïmplementeerd. Standaardwaarde is "C:\Windows Default Deploy Directory\<name of app>".
deployDebugRuntimeLibraries touw Hiermee geeft u op of de runtimebibliotheken voor foutopsporing voor het actieve platform moeten worden geïmplementeerd. Wordt als standaard "true" ingesteld als de actieve configurationType "Debug" is.
deployRuntimeLibraries touw Hiermee geeft u op of de runtimebibliotheken voor het actieve platform moeten worden geïmplementeerd. Standaard wordt "true" ingesteld als het actieve configuratietype "MinSizeRel", "RelWithDebInfo", of "Release" is.
disableDeploy booleaan Hiermee geeft u op of bestanden moeten worden geïmplementeerd.
remoteMachineName touw Hiermee geeft u de naam van de externe ARM64 Windows-computer waarop het programma wordt gestart. Dit kan de servernaam of het IP-adres van de externe computer zijn.
authenticationType touw Hiermee wordt het type externe verbinding gespecificeerd. Mogelijke waarden zijn "windows" en "none". De standaardwaarde is "windows". Deze waarde moet overeenkomen met de verificatie-instelling die is opgegeven in het externe foutopsporingsprogramma dat wordt uitgevoerd op de externe computer.

Setup-opdrachten starten

Wordt gebruikt met de setupCommands eigenschap:

Vastgoed Typologie Beschrijving
text touw De opdracht die de debugger moet uitvoeren.
description touw Optionele beschrijving voor de opdracht.
ignoreFailures booleaan Indien waar, moeten fouten van de opdracht worden genegeerd. Standaardwaarde is false.

Opties voor pijptransport

Wordt gebruikt met de pipeTransport eigenschap:

Vastgoed Typologie Beschrijving
pipeCwd touw Het volledig gekwalificeerde pad naar de werkmap voor het pipe-programma.
pipeProgram touw De volledig gekwalificeerde pipe-opdracht die moet worden uitgevoerd.
pipeArgs gegevensreeks Opdrachtregelargumenten die zijn doorgegeven aan het pipe-programma om de verbinding te configureren.
debuggerPath touw Het volledige pad naar het foutopsporingsprogramma op de doelcomputer, bijvoorbeeld /usr/bin/gdb.
pipeEnv Voorwerp Omgevingsvariabelen die worden doorgegeven aan het pijpprogramma.
quoteArgs booleaan Als afzonderlijke argumenten tekens bevatten (zoals spaties of tabbladen), moet deze worden geciteerd? Als falsede opdracht foutopsporingsprogramma niet meer automatisch wordt geciteerd. De standaardinstelling is true.

Opties voor de bronbestandskaart

Gebruiken met de sourceFileMap eigenschap:

Vastgoed Typologie Beschrijving
editorPath touw De locatie van de broncode die door de editor gevonden moet worden.
useForBreakpoints booleaan Bij het instellen van breakpoints moet deze bronmapping worden gebruikt. Als falsealleen de bestandsnaam en het regelnummer worden gebruikt voor het instellen van onderbrekingspunten. Als true, worden onderbrekingspunten alleen ingesteld met het volledige bestands- en regelnummer wanneer deze brontoewijzing wordt gebruikt. Anders worden alleen bestandsnaam en regelnummer gebruikt bij het instellen van onderbrekingspunten. De standaardinstelling is true.