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 launch.vs.json soubor, 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 ladicí relace CMake.

Výchozí vlastnosti

Vlastnost Type 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 sestavení pro použití konfigurací. Například nebo Release a konfigurace, Debug které se mají použít v souladu s vybraným režimem sestavení.
currentDir string Určuje úplnou cestu adresáře k cíli sestavení. Adresář se rozpozná automaticky, pokud není tento parametr nastavený.
cwd string Úplná cesta k adresáři ve vzdáleném systému, kde program poběží. Výchozí hodnota "${debugInfo.defaultWorkingDirectory}"
debugType string 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 klíč-hodnota vlastní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 zadejte proměnné prostředí podle cíle env.VARIABLE_NAME . Pokud chcete proměnnou zrušit, nastavte ji na "null"hodnotu .
name string Určuje název položky v rozevíracím seznamu Po spuštění položky .
noDebug boolean Určuje, jestli se má spustit program ladit. Výchozí hodnota tohoto parametru je false , pokud není zadána.
portName string Určuje název portu při připojování ke spuštěném procesu.
program string Příkaz ladění, který se má spustit. Výchozí hodnota "${debugInfo.fullTargetPath}"je .
project string Určuje relativní cestu k souboru projektu. Při ladění projektu CMake obvykle tuto hodnotu nemusíte měnit.
projectTarget string Určuje volitelný cíl vyvolaný při sestavování project. Cíl musí odpovídat názvu v rozevíracím seznamu Po spuštění položky .
stopOnEntry boolean Určuje, jestli se má proces přerušit, a ladicí program se připojí. Výchozí hodnota pro tento parametr je false.
remoteMachine string Určuje název vzdáleného počítače, na kterém je program spuštěn.
type string Určuje, jestli je projekt .exe dll nebo exe výchozí hodnota.

Vlastnosti linuxu C++

Vlastnost Type Description
program string Úplná cesta k programu spustitelného souboru 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 pro připojení ladicího programu
sourceFileMap objekt Volitelné mapování zdrojových souborů předané do ladicího modulu. 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 string Jeden ze zdrojových SouborůMapOptions. (Viz níže.)
MIMode string 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 string Architektura ladicího programu. Architektura se detekuje automaticky, pokud není tento parametr nastavený. Povolené hodnoty jsou x86, , arm, mipsarm64x64, . x86_64amd64
visualizerFile string Soubor .natvis, který se má použít při ladění tohoto procesu. Tato možnost není kompatibilní s pěkným tiskem 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 string Vzdálený počítač s Linuxem, který hostuje gdb a program pro 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 string Cesta k ladicím programu s podporou MI (například gdb). Pokud není zadáno, vyhledá program PATH jako první ladicí program.
miDebuggerServerAddress string 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 nic, což může být užitečné, pokud ladicí program poskytuje možnosti spuštění jako možnosti příkazového řádku. Příklad: "customLaunchSetupCommands": [ { "text": "target-run", "description": "run target", "ignoreFailures": false }].
launchCompleteCommand string 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 string Volitelná úplná cesta k ladění serveru, který se má spustit. Výchozí hodnota je null.
debugServerArgs string Volitelné skupiny 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 falseje .
coreDumpPath string Volitelná úplná cesta k základnímu souboru výpisu paměti pro zadaný program. Výchozí hodnota je null.
externalConsole boolean Pokud je hodnota true, konzola se spustí pro ladicí prostředí. Pokud falsenení spuštěna žádná konzola. 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 string Pokud je k dispozici, informuje ladicí program, aby se připojil ke vzdálenému počítači pomocí jiného spustitelného souboru jako kanálu, který bude předávat standardní vstup a výstup mezi sadou Visual Studio a ladicí program s podporou MI (například gdb). Povolené hodnoty: jeden nebo více možností přenosu potrubí.

debugInfo – makra

Následující makra poskytují informace o prostředí ladění. Jsou užitečné pro přizpůsobení spuštění aplikace pro 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 část "fullTargetPath"adresáře . 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 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 Subsystém Windows pro 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 Type Description
cwd string 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 string 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 string 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 string Určuje, jestli se mají nasadit knihovny modulu runtime ladění pro aktivní platformu. Výchozí hodnota "true" je, pokud je aktivní typ konfigurace. "Debug"
deployRuntimeLibraries string 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 string 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 string 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 ve vzdáleném ladicím programu spuštěném na vzdáleném počítači.

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

Používá se s setupCommands vlastností:

Vlastnost Type Description
text string Příkaz ladicího programu, který se má provést.
description string Volitelný popis příkazu
ignoreFailures boolean Pokud je hodnota true, chyby z příkazu by se měly ignorovat. Výchozí hodnota falseje .

Možnosti přenosu potrubí

Používá se s pipeTransport vlastností:

Vlastnost Type Description
pipeCwd string Plně kvalifikovaná cesta k pracovnímu adresáři pro program kanálu.
pipeProgram string 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 string Úplná cesta k ladicím programu na cílovém počítači, například /usr/bin/gdb.
pipeEnv objekt Proměnné prostředí předané do programu kanálu.
quoteArgs boolean Pokud jednotlivé argumenty obsahují znaky (například mezery nebo tabulátory), měly by být uvozovány? Pokud falsepří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 vlastností:

Vlastnost Type Description
editorPath string 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.