Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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. |