Dela via


launch.vs.json schemareferens (C++)

I Visual Studio 2017 och senare versioner kan du öppna och skapa kod från nästan alla katalogbaserade projekt utan att behöva en lösning eller projektfil. När det inte finns någon projekt- eller lösningsfil kan du ange anpassade bygguppgifter och starta parametrar via JSON-konfigurationsfiler. Den här artikeln beskriver launch.vs.json filen, som anger felsökningsparametrar. Mer information om funktionen "Öppna mapp" finns i Utveckla kod i Visual Studio utan projekt eller lösningar.

Om du vill skapa filen högerklickar du på en körbar fil i Solution Explorer och väljer Felsöka och Starta inställningar. Välj det alternativ som bäst matchar projektet och använd sedan följande egenskaper för att ändra konfigurationen efter behov. Mer information om felsökning av CMake-projekt finns i Konfigurera CMake-felsökningssessioner.

Standardegenskaper

Fastighet Typ Beskrivning
args samling Anger de kommandoradsargument som skickas till det lanserade programmet.
buildConfigurations samling Ett nyckel/värde-par som anger namnet på byggläget för att tillämpa konfigurationerna. Till exempel Debug , eller Release och de konfigurationer som ska användas enligt det valda byggläget.
currentDir snöre Anger den fullständiga katalogsökvägen till byggmålet. Katalogen identifieras automatiskt om inte den här parametern har angetts.
cwd snöre Fullständig sökväg till katalogen i fjärrsystemet där programmet körs. Standardinställningen är "${debugInfo.defaultWorkingDirectory}".
debugType snöre Anger felsökningsläget enligt typen av kod (intern, hanterad eller blandad). Läget identifieras automatiskt om inte den här parametern har angetts. Tillåtna värden: "native", "managed", "mixed".
env samling Anger en nyckel/värde-lista över anpassade miljövariabler. Till exempel: env:{"myEnv":"myVal"}.
inheritEnvironments samling Anger en uppsättning miljövariabler som ärvts från flera källor. Du kan definiera vissa variabler i filer som CMakeSettings.json eller CppProperties.json och göra dem tillgängliga för felsökningskontext. Visual Studio 16.4: Ange miljövariabler per mål med hjälp av syntaxen env.VARIABLE_NAME . Om du vill ta bort en variabel anger du den till "null".
name snöre Anger namnet på posten i listrutan Startobjekt .
noDebug booleskt Anger om det startade programmet ska felsökas. Standardvärdet för den här parametern är false om det inte har angetts.
portName snöre Anger namnet på porten när du ansluter till en process som körs.
program snöre Felsökningskommandot som ska köras. Standardinställningen är "${debugInfo.fullTargetPath}".
project snöre Anger den relativa sökvägen till projektfilen. Normalt behöver du inte ändra det här värdet när du felsöker ett CMake-projekt.
projectTarget snöre Anger det valfria mål som anropas när du skapar project. Målet måste matcha namnet i listrutan Startobjekt .
stopOnEntry booleskt Anger om processen ska brytas så fort den startas och debuggern ansluts. Standardvärdet för den här parametern är false.
remoteMachine snöre Anger namnet på fjärrdatorn där programmet startas.
type snöre Anger om projektet är en dll eller exe. Standardinställningen är "exe".

Egenskaper för C++ Linux

Fastighet Typ Beskrivning
program snöre Fullständig sökväg till program som kan köras på fjärrdatorn. När du använder CMake kan makrot ${debugInfo.fullTargetPath} användas som värde för det här fältet.
processId heltal Valfritt process-ID som felsökningsprogrammet ska kopplas till.
sourceFileMap objekt Valfria källfilmappningar som skickas till felsökningsmotorn. Format: { "\<Compiler source location>": "\<Editor source location>" } eller { "\<Compiler source location>": { "editorPath": "\<Editor source location>", "useForBreakpoints": true } }. Exempel: { "/home/user/foo": "C:\\foo" } eller { "/home/user/foo": { "editorPath": "c:\\foo", "useForBreakpoints": true } }. Mer information finns i Alternativ för källfilkarta.
additionalProperties snöre En av alternativ för källfilkarta. (Se nedan.)
MIMode snöre Anger vilken typ av MI-aktiverad konsolfelsökare som MIDebugEngine ansluter till. Tillåtna värden är "gdb", "lldb".
args samling Kommandoradsargument som skickas till programmet.
environment samling Miljövariabler som ska läggas till i miljön för programmet. Exempel: [ { "name": "squid", "value": "clam" } ].
targetArchitecture snöre Arkitekturen för det program som felsöks. Arkitekturen identifieras automatiskt om inte den här parametern har angetts. Tillåtna värden är x86, arm, arm64, mips, x64, amd64, . x86_64
visualizerFile snöre Natvis-filen som ska användas vid felsökning av den här processen. Det här alternativet är inte kompatibelt med GDB-utskrifter. Se "showDisplayString" om du använder den här inställningen.
showDisplayString booleskt När en visualizerFile har angetts showDisplayString aktiveras visningssträngen. Om du aktiverar det här alternativet kan prestandan försämras under felsökningen.
remoteMachineName snöre Den fjärranslutna Linux-datorn som är värd för gdb och programmet som ska felsökas. Använd Anslutningshanteraren för att lägga till nya Linux-datorer. När du använder CMake kan makrot ${debugInfo.remoteMachineName} användas som värde för det här fältet.
miDebuggerPath snöre Sökvägen till det MI-aktiverade felsökningsprogrammet (till exempel gdb). När det är ospecificerat kommer PATH att sökas först efter felsökningsprogrammet.
miDebuggerServerAddress snöre Nätverksadressen för den MI-aktiverade felsökningsservern att ansluta till. Exempel: "localhost:1234".
setupCommands samling Ett eller flera GDB/LLDB-kommandon som ska köras för att konfigurera det underliggande felsökningsprogrammet. Exempel: "setupCommands": [ { "text": "-enable-pretty-printing", "description": "Enable GDB pretty printing", "ignoreFailures": true }]. Mer information finns i Starta installationskommandon.
customLaunchSetupCommands samling Om detta anges ersätter det här värdet de standardkommandon som används för att starta ett mål med några andra kommandon. Använd till exempel "-target-attach" för att ansluta till en målprocess. En tom kommandolista ersätter startkommandona med ingenting, vilket kan vara användbart om felsökningsprogrammet tillhandahålls startalternativ som kommandoradsalternativ. Exempel: "customLaunchSetupCommands": [ { "text": "target-run", "description": "run target", "ignoreFailures": false }].
launchCompleteCommand snöre Kommandot som ska köras efter att felsökningsprogrammet har konfigurerats helt för att göra så att målprocessen körs. Tillåtna värden är "exec-run", "exec-continue", "None". Standardvärdet är "exec-run".
debugServerPath snöre Valfri fullständig sökväg till felsökningsservern som ska startas. Standardvärdet är null.
debugServerArgs snöre Valfria argument för felsökningsserver. Standardvärdet är null.
filterStderr booleskt Sök i stderr-strömmen efter serverstartade mönster och logga stderr för att felsöka utdata. Standardinställningen är false.
coreDumpPath snöre Valfri fullständig sökväg till en kärndumpfil för det angivna programmet. Standardvärdet är null.
externalConsole booleskt Om det stämmer startas en konsol för den felsökta enheten. Om falsestartas ingen konsol. Standardvärdet för den här inställningen är false. Det här alternativet ignoreras i vissa fall av tekniska skäl.
pipeTransport snöre I nuläget meddelar det här värdet felsökaren att ansluta till en fjärrdator med en annan körbar fil som ett rör som vidarebefordrar standardindata/utdata mellan Visual Studio och det MI-aktiverade felsökningsprogrammet (till exempel gdb). Tillåtna värden: ett eller flera transportalternativ för rör.

debugInfo-makron

Följande makron innehåller information om felsökningsmiljön. De är användbara för att anpassa lanseringen av din app för felsökning.

Makro Beskrivning Exempel
addressSanitizerRuntimeFlags Körningsflaggor som används för att anpassa funktionssättet för address-sanitörer. Används för att ange miljövariabeln "ASAN_OPTIONS". "env": {"ASAN_OPTIONS": "${addressSanitizerRuntimeFlags}:anotherFlag=true"}
defaultWorkingDirectory Ange till katalogdelen i "fullTargetPath". Om CMake-variabeln VS_DEBUGGER_WORKING_DIRECTORY har definierats defaultWorkingDirectory ställs den i stället in på det värdet. "cwd":"${debugInfo.defaultWorkingDirectory}"
fullTargetPath Den fullständiga sökvägen till binärfilen som debuggas. "program": "${debugInfo.fullTargetPath}"
linuxNatvisPath Den fullständiga Windows-sökvägen till filen "VS Linux .natvis". Visas vanligtvis som värdet "visualizerFile".
parentProcessId Process-ID för den aktuella Visual Studio-instansen. Används som parameter för shellexec. Se pipeTransport-exemplet nedan.
remoteMachineId En unik, numerisk identifierare för anslutningen till fjärrdatorn. Används som parameter för shellexec. Se pipeTransport-exemplet nedan.
remoteWorkspaceRoot Linux-sökväg till fjärrkopian av arbetsytan. Ange filplatser på fjärrdatorn. Till exempel: "args": ["${debugInfo.remoteWorkspaceRoot}/Data/MyInputFile.dat"]
resolvedRemoteMachineName Namnet på målfjärrdatorn. "targetMachine" värde i ett distributionsdirektiv
shellexecPath Sökvägen till shellexec-programmet som Visual Studio använder för att hantera fjärrdatoranslutningen. Se pipeTransport-exemplet nedan
tty gdb omdirigerar indata och utdata till den här enheten för programmet som debuggas. Används som parameter för gdb (-tty). Se pipeTransport-exemplet nedan.
windowsSubsystemPath Den fullständiga sökvägen till Windows-undersystemet för Linux-instansen.

PipeTransport-exemplet nedan visar hur du använder några av makrona debugInfo som definierats ovan:

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

Inställningar för fjärrdebugging och distribuering av C++ Windows

Används vid felsökning och distribution av en app på en fjärrdator.

Fastighet Typ Beskrivning
cwd snöre Arbetskatalogen för målet på fjärrdatorn. När du använder CMake kan makrot ${debugInfo.defaultWorkingDirectory} användas som värde för det här fältet. Standardvärdet är katalogen för felsökningsprogrammet/kommandot.
deploy snöre Anger extra filer eller kataloger som ska distribueras. Till exempel:
"deploy": {"sourcePath":"<Full path to source file/directory on host machine>", "targetPath":"<Full destination path to file/directory on target machine>"}
deployDirectory snöre Den plats på fjärrdatorn där projektutdata distribueras automatiskt till. Standardinställningen är "C:\Windows Default Deploy Directory\<name of app>".
deployDebugRuntimeLibraries snöre Specificerar om felsökningsbiblioteken ska distribueras för den aktuella plattformen. Standardvärdet är "true" om den aktiva configurationType är "Debug".
deployRuntimeLibraries snöre Anger om körningsbiblioteken för den aktiva plattformen ska distribueras. Standardvärdet är "true" om den aktiva configurationType är "MinSizeRel", "RelWithDebInfo"eller "Release".
disableDeploy booleskt Anger om filer ska distribueras.
remoteMachineName snöre Anger namnet på den fjärranslutna ARM64 Windows-dator där programmet startas. Kan vara servernamnet eller fjärrdatorns IP-adress.
authenticationType snöre Anger typen av fjärranslutning. Möjliga värden är "windows" och "none". Standardvärdet är "windows". Det här värdet ska matcha autentiseringsinställningen som anges på fjärrfelsökaren som körs på fjärrdatorn.

Kör konfigurationskommandon

Används med egenskapen setupCommands :

Fastighet Typ Beskrivning
text snöre Felsökningskommandot som ska köras.
description snöre Valfri beskrivning av kommandot.
ignoreFailures booleskt Om det är sant ska fel från kommandot ignoreras. Standardinställningen är false.

Transportalternativ för rör

Används med egenskapen pipeTransport :

Fastighet Typ Beskrivning
pipeCwd snöre Den fullständigt kvalificerade sökvägen till arbetskatalogen för pipe-programmet.
pipeProgram snöre Det fullständigt kvalificerade pipe-kommandot som ska köras.
pipeArgs samling Kommandoradsargument som skickas till pipe-programmet för att konfigurera anslutningen.
debuggerPath snöre Den fullständiga sökvägen till felsökningsprogrammet på måldatorn, till exempel /usr/bin/gdb.
pipeEnv objekt Miljövariabler som skickas till pipe-programmet.
quoteArgs booleskt Om enskilda argument innehåller tecken (till exempel blanksteg eller flikar), bör det citeras? Om falsekommer felsökningskommandot inte längre att citeras automatiskt. Standard är true.

Alternativ för källfilsmappning

Använd med egenskapen sourceFileMap :

Fastighet Typ Beskrivning
editorPath snöre Platsen för källkoden som redigeraren ska hitta.
useForBreakpoints booleskt När du anger brytpunkter ska den här källmappningen användas. Om falseanvänds endast filnamnet och radnumret för att ange brytpunkter. Om trueanges brytpunkter med den fullständiga sökvägen till filen och radnumret endast när källmappningen används. Annars används bara filnamn och radnummer vid inställning av brytpunkter. Standard är true.