Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Référence du schéma
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é | Catégorie | Descriptif |
|---|---|---|
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 |
ficelle | Spécifie le chemin d'accès complet du répertoire vers la cible de compilation. Le répertoire est détecté automatiquement, sauf si ce paramètre est défini. |
cwd |
ficelle | 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 |
ficelle | 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 |
ficelle | 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 false si elle n'est pas spécifiée. |
portName |
ficelle | Spécifie le nom du port durant l'attachement à un processus en cours d'exécution. |
program |
ficelle | Commande de débogage à exécuter. La valeur par défaut est "${debugInfo.fullTargetPath}". |
project |
ficelle | 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 |
ficelle | Spécifie la cible facultative appelée lors de la compilation de 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 arrêter dès que le processus est initié et que le débogueur s’attache. La valeur par défaut de ce paramètre est false. |
remoteMachine |
ficelle | Spécifie le nom de la machine distante sur laquelle le programme est lancé. |
type |
ficelle | Spécifie si le projet est un dll ou exe. La valeur par défaut est "exe". |
Propriétés C++ sous Linux
| Propriété | Catégorie | Descriptif |
|---|---|---|
program |
ficelle | 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 |
objet | Cartographies de fichiers sources facultatives passées 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 |
ficelle | Une des options "sourceFileMapOptions". (Voir ci-dessous.) |
MIMode |
ficelle | Indique le type de débogueur de console à interface machine (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 |
ficelle | 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 |
ficelle | Le fichier .natvis à utiliser pendant le débogage de ce processus. Cette option n’est pas compatible avec le "pretty printing" de 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 |
ficelle | 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 |
ficelle | Chemin vers le débogueur compatible avec MI (par exemple, gdb). Lorsqu’il n’est pas spécifié, il recherche d’abord PATH pour le débogueur. |
miDebuggerServerAddress |
ficelle | Adresse réseau du serveur de débogueur prenant en charge le MI auquel 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 supprime les commandes de lancement, ce qui peut être utile si le débogueur reçoit des options de lancement sous forme d'options de ligne de commande. Exemple : "customLaunchSetupCommands": [ { "text": "target-run", "description": "run target", "ignoreFailures": false }]. |
launchCompleteCommand |
ficelle | 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 |
ficelle | Chemin complet du serveur de débogage facultatif à lancer. La valeur par défaut est Null. |
debugServerArgs |
ficelle | Arguments de serveur de débogage facultatifs. La valeur par défaut est Null. |
filterStderr |
booléen | Recherchez dans le flux stderr le modèle de démarrage du serveur et consignez stderr dans la sortie de débogage. La valeur par défaut est false. |
coreDumpPath |
ficelle | 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 |
ficelle | Lorsqu'il est présent, cette valeur indique au débogueur qu'il doit se connecter à un ordinateur distant en utilisant un autre exécutable comme un canal pour relayer l'entrée/sortie standard entre Visual Studio et le débogueur activé MI (par exemple, gdb). Valeurs autorisées : une ou plusieurs options de transport de canal. |
macros debugInfo
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 | Descriptif | 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 visé. | 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}"
]
}
Propriétés de débogage et de déploiement à distance pour Windows C++
Utilisé lors du débogage et du déploiement d’une application sur une machine distante.
| Propriété | Catégorie | Descriptif |
|---|---|---|
cwd |
ficelle | 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 |
ficelle | 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 |
ficelle | 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 |
ficelle | Spécifie le déploiement ou non des bibliothèques runtime de débogage pour la plateforme active.
"true" Par défaut, si le configurationType actif est "Debug". |
deployRuntimeLibraries |
ficelle | 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 |
ficelle | 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 |
ficelle | 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é | Catégorie | Descriptif |
|---|---|---|
text |
ficelle | Commande de débogueur à exécuter. |
description |
ficelle | 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 par tuyaux
Utilisé avec la propriété pipeTransport :
| Propriété | Catégorie | Descriptif |
|---|---|---|
pipeCwd |
ficelle | Chemin d’accès complet du répertoire de travail du programme de pipe. |
pipeProgram |
ficelle | La commande de pipeline entièrement qualifiée à exécuter. |
pipeArgs |
tableau | Arguments de ligne de commande passés au programme de pipe pour configurer la connexion. |
debuggerPath |
ficelle | Le chemin complet vers le débogueur sur la machine cible, par exemple /usr/bin/gdb. |
pipeEnv |
objet | Variables d'environnement transmises au programme de pipeline. |
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 citée. La valeur par défaut est true. |
Options de mappage de fichiers sources
Utilisez-la avec la propriété sourceFileMap :
| Propriété | Catégorie | Descriptif |
|---|---|---|
editorPath |
ficelle | L'emplacement du code source à localiser par l'éditeur. |
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 seront définis avec le chemin complet du fichier et le 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. |