Informations de référence sur le schéma launch.vs.json
(C++)
Dans Visual Studio 2017 et versions ultérieures, vous pouvez ouvrir et générer du code à partir de presque n’importe quel projet basé sur un répertoire sans nécessiter de solution ou de fichier projet. En l’absence de fichier projet ou solution, vous pouvez spécifier des tâches de génération personnalisées et lancer des paramètres via des fichiers de configuration JSON. Cet article décrit le fichier launch.vs.json
, qui spécifie les paramètres de débogage. Pour plus d’informations sur la fonctionnalité « Dossier ouvert¤», consultez Développer du code dans Visual Studio sans projets ni solutions.
Pour créer le fichier, cliquez avec le bouton droit sur un fichier exécutable dans l’Explorateur de solutions, puis choisissez Déboguer et lancer les paramètres. Choisissez l’option qui correspond le plus étroitement à votre projet, puis utilisez les propriétés suivantes pour modifier la configuration si nécessaire. Pour plus d’informations sur les projets de débogage CMake, consultez Configurer les sessions de débogage CMake.
Propriétés par défaut
Propriété | Type | Description |
---|---|---|
args |
tableau | Spécifie les arguments de ligne de commande passés au programme lancé. |
buildConfigurations |
tableau | Une paire clé-valeur qui spécifie le nom du mode de génération pour appliquer les configurations. Par exemple, Debug ou Release et les configurations à utiliser en fonction du mode de génération sélectionné. |
currentDir |
string | Spécifie le chemin d’accès complet du répertoire à la cible de build. Le répertoire est détecté automatiquement, sauf si ce paramètre est défini. |
cwd |
string | Chemin complet du répertoire sur le système distant où le programme s’exécutera. La valeur par défaut est "${debugInfo.defaultWorkingDirectory}" |
debugType |
string | Spécifie le mode de débogage en fonction du type de code (natif, managé ou mixte). Le mode est détecté automatiquement, sauf si ce paramètre est défini. Valeurs autorisées : "native" , "managed" , "mixed" . |
env |
tableau | Spécifie une liste clé-valeur des variables d’environnement personnalisées. Par exemple : env:{"myEnv":"myVal"} . |
inheritEnvironments |
tableau | Spécifie un ensemble de variables d’environnement héritées de plusieurs sources. Vous pouvez définir certaines variables dans des fichiers tels CMakeSettings.json ou CppProperties.json et les rendre disponibles pour déboguer le contexte. Visual Studio 16.4 : spécifiez des variables d’environnement par cible à l’aide de la syntaxe env.VARIABLE_NAME . Pour annuler la définition d’une variable, définissez-la sur "null" . |
name |
string | Spécifie le nom de l’entrée dans la liste déroulante Élément de démarrage. |
noDebug |
booléen | Spécifie s’il faut déboguer le programme lancé. La valeur par défaut de ce paramètre est si false n’est pas spécifiée. |
portName |
string | Spécifie le nom du port durant l'attachement à un processus en cours d'exécution. |
program |
string | Commande de débogage à exécuter. La valeur par défaut est "${debugInfo.fullTargetPath}" . |
project |
string | Spécifie le chemin relatif du fichier projet. Normalement, vous n’avez pas besoin de modifier cette valeur lors du débogage d’un projet CMake. |
projectTarget |
string | Spécifie la cible facultative appelée lors de la génération project . La cible doit correspondre au nom dans la liste déroulante Élément de démarrage. |
stopOnEntry |
booléen | Spécifie s’il faut interrompre le processus dès que le processus est lancé et que le débogueur s’attache. La valeur par défaut de ce paramètre est false . |
remoteMachine |
string | Spécifie le nom de la machine distante sur laquelle le programme est lancé. |
type |
string | Spécifie si le projet est un dll ou exe par défaut pour .exe |
Propriétés Linux C++
Propriété | Type | Description |
---|---|---|
program |
string | Chemin complet du programme exécutable sur l’ordinateur distant. Lorsque vous utilisez CMake, la macro ${debugInfo.fullTargetPath} peut être utilisée comme valeur de ce champ. |
processId |
entier | ID de processus facultatif auquel le débogueur doit être attaché. |
sourceFileMap |
object | Mappages de fichiers sources facultatifs passés au moteur de débogage. Format : { "\<Compiler source location>": "\<Editor source location>" } ou { "\<Compiler source location>": { "editorPath": "\<Editor source location>", "useForBreakpoints": true } } . Exemple : { "/home/user/foo": "C:\\foo" } ou { "/home/user/foo": { "editorPath": "c:\\foo", "useForBreakpoints": true } } . Pour plus d’informations, consultez les options de mappage de fichiers sources. |
additionalProperties |
string | Une des options sourceFileMapOptions. (Voir ci-dessous.) |
MIMode |
string | Indique le type de débogueur de console compatible mi auquel le MIDebugEngine se connectera. Les valeurs autorisées sont "gdb" , "lldb" . |
args |
tableau | Arguments de ligne de commande passés au programme. |
environment |
tableau | Variables d’environnement à ajouter à l’environnement du programme. Exemple : [ { "name": "squid", "value": "clam" } ] . |
targetArchitecture |
string | Architecture du débogueur. L’architecture est détectée automatiquement, sauf si ce paramètre est défini. Les valeurs autorisées sont x86 , arm , arm64 , mips , x64 , amd64 et x86_64 . |
visualizerFile |
string | Le fichier .natvis à utiliser pendant le débogage de ce processus. Cette option n’est pas compatible avec l’impression GDB. Vérifiez "showDisplayString" si vous utilisez ce paramètre. |
showDisplayString |
booléen | Lorsqu’un visualizerFile est spécifié, showDisplayString active la chaîne d’affichage. L’activation de cette option peut ralentir les performances pendant le débogage. |
remoteMachineName |
string | Machine Linux distante qui héberge gdb et le programme à déboguer. Utilisez le gestionnaire de connexions pour l’ajout de nouvelles machines Linux. Lorsque vous utilisez CMake, la macro ${debugInfo.remoteMachineName} peut être utilisée comme valeur de ce champ. |
miDebuggerPath |
string | Chemin d’accès au débogueur prenant en charge MI (par exemple, gdb). Lorsqu’il n’est pas spécifié, il recherche d’abord PATH pour le débogueur. |
miDebuggerServerAddress |
string | Adresse réseau du serveur de débogueur prenant en charge MI pour se connecter. Exemple : "localhost:1234" . |
setupCommands |
tableau | Une ou plusieurs commandes GDB/LLDB à exécuter pour configurer le débogueur sous-jacent. Exemple : "setupCommands": [ { "text": "-enable-pretty-printing", "description": "Enable GDB pretty printing", "ignoreFailures": true }] . Pour plus d’informations, consultez Commandes pour lancer le programme d’installation. |
customLaunchSetupCommands |
tableau | Si elle est fournie, cette valeur remplace les commandes par défaut utilisées pour lancer une cible par d’autres commandes. Par exemple, utilisez « -target-attach » pour l’attacher à un processus cible. Une liste de commandes vide remplace les commandes de lancement par rien, ce qui peut être utile si le débogueur fournit des options de lancement en tant qu’options de ligne de commande. Exemple : "customLaunchSetupCommands": [ { "text": "target-run", "description": "run target", "ignoreFailures": false }] . |
launchCompleteCommand |
string | Commande à exécuter une fois le débogueur entièrement configuré, pour provoquer l’exécution du processus cible. Les valeurs autorisées sont « exec-run », « exec-continue », « None ». La valeur par défaut est « exec-run ». |
debugServerPath |
string | Chemin complet facultatif du serveur de débogage à lancer. La valeur par défaut est Null. |
debugServerArgs |
string | Arguments de serveur de débogage facultatifs. La valeur par défaut est Null. |
filterStderr |
booléen | Permet de rechercher dans le flux stderr le modèle correspondant au démarrage du serveur, et de journaliser stderr dans la sortie de débogage. La valeur par défaut est false . |
coreDumpPath |
string | Chemin complet facultatif d'un fichier d'image mémoire principal pour le programme spécifié. La valeur par défaut est Null. |
externalConsole | booléen | Si la valeur est True, une console est lancée pour le débogueur. Si false , aucune console n’est lancée. La valeur par défaut de ce paramètre est false . Cette option est ignorée dans certains cas pour des raisons techniques. |
pipeTransport |
string | Lorsque présent, cette valeur signale au débogueur qu'il doit se connecter à un ordinateur distant en se servant d'un autre exécutable comme canal de relais d'entrée/de sortie standard entre Visual Studio \net le débogueur MI (par exemple, gdb). Valeurs autorisées : une ou plusieurs options de transport de canal. |
macros de débogageInfo
Les macros suivantes fournissent des informations sur l’environnement de débogage. Ils sont utiles pour personnaliser le lancement de votre application pour le débogage.
Macro | Description | Exemple |
---|---|---|
addressSanitizerRuntimeFlags |
Indicateurs d’exécution utilisés pour personnaliser le comportement de l’assainissant d’adresse. Utilisé pour définir la variable d’environnement "ASAN_OPTIONS" . |
"env": {"ASAN_OPTIONS": "${addressSanitizerRuntimeFlags}:anotherFlag=true" } |
defaultWorkingDirectory |
Défini sur la partie répertoire de "fullTargetPath" . Si la variable CMake VS_DEBUGGER_WORKING_DIRECTORY est définie, alors defaultWorkingDirectory est définie à cette valeur. |
"cwd":"${debugInfo.defaultWorkingDirectory}" |
fullTargetPath |
Chemin d’accès complet au fichier binaire en cours de débogage. | "program": "${debugInfo.fullTargetPath}" |
linuxNatvisPath |
Chemin d’accès complet aux fenêtres du fichier VS linux .natvis . Apparaît généralement sous la forme de la valeur "visualizerFile" . |
|
parentProcessId |
ID de processus de l’instance Visual Studio actuelle. Utilisé comme paramètre pour shellexec. | Consultez l’exemple pipeTransport ci-dessous. |
remoteMachineId |
Identificateur numérique unique pour la connexion à l’ordinateur distant. Utilisé comme paramètre pour shellexec. | Consultez l’exemple pipeTransport ci-dessous. |
remoteWorkspaceRoot |
Chemin d’accès Linux à la copie distante de l’espace de travail. | Spécifiez des emplacements de fichier sur l’ordinateur distant. Par exemple : "args": ["${debugInfo.remoteWorkspaceRoot}/Data/MyInputFile.dat"] |
resolvedRemoteMachineName |
Nom de l’ordinateur distant cible. | La valeur "targetMachine" dans une directive de déploiement |
shellexecPath |
Chemin d’accès au programme shellexec que Visual Studio utilise pour gérer la connexion de l’ordinateur distant. | Voir l’exemple pipeTransport ci-dessous |
tty |
gdb redirige l’entrée et la sortie vers cet appareil pour le programme en cours de débogage. Utilisé comme paramètre pour gdb (-tty). | Consultez l’exemple pipeTransport ci-dessous. |
windowsSubsystemPath |
Chemin d’accès complet à l’instance du sous-système Windows pour Linux. |
L’exemple pipeTransport ci-dessous montre comment utiliser certaines des macros debugInfo
définies ci-dessus :
"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}"
]
}
Débogage distant Windows C++ et propriétés de déploiement
Utilisé lors du débogage et du déploiement d’une application sur une machine distante.
Propriété | Type | Description |
---|---|---|
cwd |
string | Répertoire de travail de la cible sur l’ordinateur distant. Lorsque vous utilisez CMake, la macro ${debugInfo.defaultWorkingDirectory} peut être utilisée comme valeur de ce champ. La valeur par défaut est le répertoire du programme/commande de débogage. |
deploy |
string | Spécifie des fichiers ou répertoires supplémentaires à déployer. Par exemple :"deploy": {"sourcePath":"<Full path to source file/directory on host machine>", "targetPath":"<Full destination path to file/directory on target machine>"} |
deployDirectory |
string | Emplacement sur l’ordinateur distant sur lequel les sorties du projet sont automatiquement déployées. La valeur par défaut est « C:\Windows Default Deploy Directory\<name of app> |
deployDebugRuntimeLibraries |
string | Spécifie le déploiement ou non des bibliothèques runtime de débogage pour la plateforme active. "true" est par défaut, si le configurationType actif est "Debug" |
deployRuntimeLibraries |
string | Spécifie le déploiement ou non des bibliothèques runtime pour la plateforme active. "true" est par défaut, si le configurationType actif est "MinSizeRel" , "RelWithDebInfo" ou "Release" . |
disableDeploy |
booléen | Spécifie si les fichiers doivent être déployés. |
remoteMachineName |
string | Spécifie le nom de la machine Windows ARM64 distante où le programme est lancé. Il peut s’agir du nom du serveur ou de l’adresse IP de l’ordinateur distant. |
authenticationType |
string | Spécifie le type de connexion à distance. Les valeurs possibles sont "windows" et "none" . Par défaut, il s’agit de "windows" . Cette valeur doit correspondre au paramètre d’authentification spécifié sur le débogueur distant qui s’exécute sur l’ordinateur distant. |
Lancer les commandes d’installation
Utilisé avec la propriété setupCommands
:
Propriété | Type | Description |
---|---|---|
text |
string | Commande de débogueur à exécuter. |
description |
string | Description facultative de la commande. |
ignoreFailures |
booléen | Si la valeur est True, les échecs de la commande doivent être ignorés. La valeur par défaut est false . |
Options de transport Pipe
Utilisé avec la propriété pipeTransport
:
Propriété | Type | Description |
---|---|---|
pipeCwd |
string | Chemin d’accès complet du répertoire de travail du programme canal. |
pipeProgram |
string | Commande canal complète à exécuter. |
pipeArgs |
tableau | Arguments de ligne de commande passés au programme canal pour configurer la connexion. |
debuggerPath |
string | Chemin complet du débogueur sur la machine cible, par exemple /usr/bin/gdb. |
pipeEnv |
object | Variables d'environnement passées au programme canal. |
quoteArgs |
booléen | Si des arguments individuels contiennent des caractères (tels que des espaces ou des onglets), doit-il être entre guillemets ? Si false , la commande du débogueur ne sera plus automatiquement entre guillemets. La valeur par défaut est true . |
Options de mappage de fichiers sources
Utilisez-la avec la propriété sourceFileMap
:
Propriété | Type | Description |
---|---|---|
editorPath |
string | Emplacement du code source de l'éditeur à localiser. |
useForBreakpoints |
booléen | Lorsque vous définissez des points d’arrêt, ce mappage source doit être utilisé. Si false , seul le nom de fichier et le numéro de ligne sont utilisés pour définir des points d’arrêt. Si true , les points d’arrêt sont définis avec le chemin complet du fichier et du numéro de ligne uniquement lorsque ce mappage source est utilisé. Sinon, un nom de fichier et un numéro de ligne sont utilisés lors de la définition de points d’arrêt. La valeur par défaut est true . |