Sdílet prostřednictvím


launch.vs.json Referenční dokumentace schématu (C++)

V sadě Visual Studio 2017 a novějších verzích můžete otevřít a sestavit kód z téměř jakéhokoli projektu založeného na adresáři, aniž byste museli vytvořit řešení nebo soubor projektu. Pokud neexistuje žádný soubor projektu nebo řešení, můžete zadat vlastní úlohy sestavení a spustit parametry prostřednictvím konfiguračních souborů JSON. Tento článek popisuje soubor launch.vs.json, který určuje parametry ladění. Další informace o funkci Otevřít složku najdete v tématu Vývoj kódu v sadě Visual Studio bez projektů nebo řešení.

Pokud chcete soubor vytvořit, klikněte pravým tlačítkem myši na spustitelný soubor v Průzkumník řešení a zvolte Nastavení ladění a spuštění. Zvolte možnost, která nejvíce odpovídá vašemu projektu, a pak podle potřeby upravte konfiguraci pomocí následujících vlastností. Další informace o ladění projektů CMake naleznete v tématu Konfigurace relací ladění CMake.

Výchozí vlastnosti

Vlastnost Typ Popis
args pole Určuje argumenty příkazového řádku předané spuštěné aplikaci.
buildConfigurations pole Pár klíč-hodnota, který určuje název režimu kompilace pro aplikaci konfigurací. Například Debug nebo Release a konfigurace, které se mají použít v souladu s vybraným režimem sestavení.
currentDir řetězec Určuje úplnou cestu adresáře k cíli sestavení. Adresář se rozpozná automaticky, pokud není tento parametr nastavený.
cwd řetězec Úplná cesta k adresáři ve vzdáleném systému, kde program poběží. Výchozí hodnota je "${debugInfo.defaultWorkingDirectory}".
debugType řetězec Určuje režim ladění podle typu kódu (nativní, spravované nebo smíšené). Režim se automaticky zjistí, pokud není tento parametr nastavený. Povolené hodnoty: "native", "managed", "mixed".
env pole Určuje seznam párů klíč-hodnota uživatelských proměnných prostředí. Například: env:{"myEnv":"myVal"}.
inheritEnvironments pole Určuje sadu proměnných prostředí zděděných z více zdrojů. Můžete definovat některé proměnné v souborech, jako jsou CMakeSettings.json nebo CppProperties.json je zpřístupnit pro ladění kontextu. Visual Studio 16.4: Pomocí syntaxe env.VARIABLE_NAME zadejte proměnné prostředí na základě jednotlivých cílů. Pokud chcete proměnnou zrušit, nastavte ji na "null"hodnotu .
name řetězec Určuje název položky v rozevíracím seznamu při spuštění.
noDebug Boolean Určuje, zda má být spuštěný program laděn. Výchozí hodnota tohoto parametru je false , pokud není zadána.
portName řetězec Určuje název portu při připojování ke spuštěném procesu.
program řetězec Debugovací příkaz ke spuštění. Výchozí hodnota je "${debugInfo.fullTargetPath}".
project řetězec Určuje relativní cestu k souboru projektu. Při ladění projektu CMake obvykle tuto hodnotu nemusíte měnit.
projectTarget řetězec Určuje volitelný cíl vyvolaný při sestavování project. Cíl musí odpovídat názvu v rozevíracím seznamu položek Po spuštění.
stopOnEntry Boolean Určuje, jestli se má přerušit, jakmile se proces spustí, a ladicí program se připojí. Výchozí hodnota pro tento parametr je false.
remoteMachine řetězec Určuje název vzdáleného počítače, na kterém je program spuštěn.
type řetězec Určuje, zda je projekt dll nebo exe. Výchozí hodnota je "exe".

Vlastnosti linuxu C++

Vlastnost Typ Popis
program řetězec Úplná cesta ke spustitelnému souboru programu na vzdáleném počítači. Při použití CMake lze makro ${debugInfo.fullTargetPath} použít jako hodnotu tohoto pole.
processId integer Volitelné ID procesu, ke kterému se má připojit ladicí program.
sourceFileMap objekt Volitelná mapování zdrojových souborů předaná do ladicího enginu. Formát: { "\<Compiler source location>": "\<Editor source location>" } nebo { "\<Compiler source location>": { "editorPath": "\<Editor source location>", "useForBreakpoints": true } }. Příklad: { "/home/user/foo": "C:\\foo" } nebo { "/home/user/foo": { "editorPath": "c:\\foo", "useForBreakpoints": true } }. Další informace naleznete v tématu Možnosti mapování zdrojového souboru.
additionalProperties řetězec Jeden z možností mapování zdrojových souborů. (Viz níže.)
MIMode řetězec Označuje typ ladicího programu konzoly s podporou MI, ke kterému se bude MIDebugEngine připojovat. Povolené hodnoty jsou "gdb", "lldb".
args pole Argumenty příkazového řádku předané programu.
environment pole Proměnné prostředí, které se mají přidat do prostředí pro program. Příklad: [ { "name": "squid", "value": "clam" } ].
targetArchitecture řetězec Architektura ladicího programu. Architektura se detekuje automaticky, pokud není tento parametr nastavený. Povolené hodnoty jsou x86, , arm, arm64mipsx64, . amd64x86_64
visualizerFile řetězec Soubor .natvis, který se má použít při ladění tohoto procesu. Tato možnost není kompatibilní s pretty printing GDB. Podívejte se "showDisplayString" , jestli toto nastavení používáte.
showDisplayString Boolean Pokud je zadán vizualizérFile, showDisplayString povolí se zobrazovaný řetězec. Zapnutí této možnosti může během ladění zpomalit výkon.
remoteMachineName řetězec Vzdálený počítač s Linuxem, na kterém běží gdb a program k ladění. K přidání nových počítačů s Linuxem použijte Správce připojení. Při použití CMake lze makro ${debugInfo.remoteMachineName} použít jako hodnotu tohoto pole.
miDebuggerPath řetězec Cesta k MI podporovanému ladicímu programu (například gdb). Pokud není zadáno, nejprve vyhledá debugger v cestě PATH.
miDebuggerServerAddress řetězec Síťová adresa serveru ladicího programu s podporou MI, ke kterému se chcete připojit. Příklad: "localhost:1234".
setupCommands pole Jeden nebo více příkazů GDB/LLDB ke spuštění pro nastavení základního ladicího programu. Příklad: "setupCommands": [ { "text": "-enable-pretty-printing", "description": "Enable GDB pretty printing", "ignoreFailures": true }]. Další informace naleznete v tématu Spuštění instalačních příkazů.
customLaunchSetupCommands pole Pokud je tato hodnota zadaná, nahradí výchozí příkazy použité ke spuštění cíle jinými příkazy. Například k připojení k cílovému procesu použijte "-target-attach". Prázdný seznam příkazů nahrazuje spouštěcí příkazy prázdným obsahem, což může být užitečné, pokud ladicí program poskytuje parametry příkazového řádku jako možnosti spuštění. Příklad: "customLaunchSetupCommands": [ { "text": "target-run", "description": "run target", "ignoreFailures": false }].
launchCompleteCommand řetězec Příkaz, který se má spustit po úplném nastavení ladicího programu, způsobí spuštění cílového procesu. Povolené hodnoty jsou "exec-run", "exec-continue", "None". Výchozí hodnota je exec-run.
debugServerPath řetězec Volitelná úplná cesta k ladění serveru, který se má spustit. Výchozí hodnota je null.
debugServerArgs řetězec Volitelné argumenty ladicího serveru. Výchozí hodnota je null.
filterStderr Boolean Prohledejte stream stderru pro model spuštěný serverem a protokol stderr pro ladění výstupu. Výchozí hodnota je false.
coreDumpPath řetězec Volitelná úplná cesta k souboru výpisu stavu paměti pro zadaný program. Výchozí hodnota je null.
externalConsole Boolean Pokud je hodnota true, konzola se spustí pro ladicí prostředí. Pokud je false, není spuštěna žádná konzole. Výchozí hodnota pro toto nastavení je false. Tato možnost se v některých případech z technických důvodů ignoruje.
pipeTransport řetězec Pokud je k dispozici, informuje ladicí program, aby se připojil k vzdálenému systému pomocí jiného spustitelného souboru jako kanálu, který bude předávat standardní vstup a výstup mezi Visual Studiem a ladicím programem s podporou MI (například gdb). Povolené hodnoty: jedna nebo více možnosti přenosu potrubí.

debugInfo – makra

Následující makra poskytují informace o prostředí pro ladění. Jsou užitečné k přizpůsobení spuštění vaší aplikace pro účely ladění.

Makro Popis Příklad
addressSanitizerRuntimeFlags Příznaky modulu runtime používané k přizpůsobení chování sanitizátoru adresy. Slouží k nastavení proměnné "ASAN_OPTIONS" prostředí. "env": {"ASAN_OPTIONS": "${addressSanitizerRuntimeFlags}:anotherFlag=true"}
defaultWorkingDirectory Nastavte na adresářovou část "fullTargetPath". Pokud je proměnná VS_DEBUGGER_WORKING_DIRECTORY CMake definovaná, defaultWorkingDirectory nastaví se místo toho na tuto hodnotu. "cwd":"${debugInfo.defaultWorkingDirectory}"
fullTargetPath Úplná cesta k laděným binárnímu souboru. "program": "${debugInfo.fullTargetPath}"
linuxNatvisPath Úplná cesta ve Windows k souboru VS linux .natvis. Obvykle se zobrazuje jako hodnota "visualizerFile".
parentProcessId ID procesu pro aktuální instanci sady Visual Studio. Používá se jako parametr pro shellexec. Viz příklad pipeTransport níže.
remoteMachineId Jedinečný číselný identifikátor připojení ke vzdálenému počítači. Používá se jako parametr pro shellexec. Viz příklad pipeTransport níže.
remoteWorkspaceRoot Linuxová cesta ke vzdálené kopii pracovního prostoru. Zadejte umístění souborů na vzdáleném počítači. Příklad: "args": ["${debugInfo.remoteWorkspaceRoot}/Data/MyInputFile.dat"]
resolvedRemoteMachineName Název cílového vzdáleného počítače. "targetMachine" hodnota v direktivě nasazení
shellexecPath Cesta k programu shellexec, který Visual Studio používá ke správě připojení ke vzdálenému počítači. Viz příklad pipeTransport níže
tty GDB přesměruje vstup a výstup do tohoto zařízení pro laděný program. Používá se jako parametr pro gdb (-tty). Viz příklad pipeTransport níže.
windowsSubsystemPath Úplná cesta k instanci Windows Subsystem for Linux.

Následující příklad pipeTransport ukazuje, jak použít některá makra debugInfo definovaná výše:

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

Vzdálené ladění a nasazení vlastností C++ pro Windows

Používá se při ladění a nasazování aplikace na vzdáleném počítači.

Vlastnost Typ Popis
cwd řetězec Pracovní adresář cíle na vzdáleném počítači. Při použití CMake lze makro ${debugInfo.defaultWorkingDirectory} použít jako hodnotu tohoto pole. Výchozí hodnota je adresář ladicího programu nebo příkazu.
deploy řetězec Určuje další soubory nebo adresáře, které se mají nasadit. Příklad:
"deploy": {"sourcePath":"<Full path to source file/directory on host machine>", "targetPath":"<Full destination path to file/directory on target machine>"}
deployDirectory řetězec Umístění na vzdáleném počítači, do kterého se automaticky nasadí výstupy projektu. Výchozí hodnota je "C:\Windows Default Deploy Directory\<name of app>".
deployDebugRuntimeLibraries řetězec Určuje, jestli se mají nasadit ladicí runtime knihovny pro aktivní platformu. Výchozí hodnota je "true" , pokud je "Debug"aktivní typ konfigurace .
deployRuntimeLibraries řetězec Určuje, jestli se mají nasadit knihovny modulu runtime pro aktivní platformu. Výchozí hodnota je "true" , pokud je "MinSizeRel"aktivní typ konfigurace , "RelWithDebInfo"nebo "Release".
disableDeploy Boolean Určuje, jestli se mají nasadit soubory.
remoteMachineName řetězec Určuje název vzdáleného počítače s Windows ARM64, na kterém je program spuštěn. Může to být název serveru nebo IP adresa vzdáleného počítače.
authenticationType řetězec Určuje typ vzdáleného připojení. Možné hodnoty jsou "windows" a "none". Výchozí hodnota je "windows". Tato hodnota by měla odpovídat nastavení ověřování zadanému v ladícím nástroji na vzdáleném počítači.

Spuštění instalačních příkazů

Používá se s setupCommands vlastností:

Vlastnost Typ Popis
text řetězec Příkaz ladicího programu, který se má provést.
description řetězec Volitelný popis příkazu
ignoreFailures Boolean Pokud je hodnota true, chyby z příkazu by se měly ignorovat. Výchozí hodnota je false.

Možnosti přenosu potrubí

Používá se s pipeTransport vlastností:

Vlastnost Typ Popis
pipeCwd řetězec Plně kvalifikovaná cesta k pracovnímu adresáři pro program potrubí.
pipeProgram řetězec Plně kvalifikovaný příkaz kanálu, který se má provést.
pipeArgs pole Argumenty příkazového řádku předané programu kanálu ke konfiguraci připojení.
debuggerPath řetězec Úplná cesta k ladicímu programu v cílovém počítači, například /usr/bin/gdb.
pipeEnv objekt Proměnné prostředí předané do programu potrubí.
quoteArgs Boolean Pokud jednotlivé argumenty obsahují znaky (například mezery nebo tabulátory), měly by být uváděny do uvozovek? Pokud false, příkaz ladicího programu již nebude automaticky citován. Výchozí hodnota je true.

Možnosti mapování zdrojového souboru

Použijte s sourceFileMap parametrem:

Vlastnost Typ Popis
editorPath řetězec Umístění zdrojového kódu, které má editor vyhledat.
useForBreakpoints Boolean Při nastavování zarážek by se mělo použít toto mapování zdroje. Pokud falsese pro nastavení zarážek použije pouze název souboru a číslo řádku. Pokud truebudou zarážky nastaveny s úplnou cestou k souboru a číslu řádku pouze v případě, že se použije toto mapování zdroje. Jinak se při nastavování zarážek použije jenom název souboru a číslo řádku. Výchozí hodnota je true.