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 , mips arm64 x64 , . x86_64 amd64 |
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 false je . |
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 false není 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 false je . |
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 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
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 false se pro nastavení zarážek použije pouze název souboru a číslo řádku. Pokud true budou 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 . |