Débogage avec des paramètres de ligne de commande dans Visual Studio

514

Je développe une application de ligne de commande C ++ dans Visual Studio et je dois la déboguer avec des arguments de ligne de commande. Pour le moment, je lance simplement le fichier EXE généré avec les arguments dont j'ai besoin (comme celui-ci program.exe -file.txt), mais de cette façon, je ne peux pas déboguer. Y a-t-il un endroit où je peux spécifier les arguments pour le débogage?

Maciej Gryka
la source

Réponses:

756

Oui, c'est dans la section Débogage de la page des propriétés du projet.

Dans Visual Studio depuis 2008: cliquez avec le bouton droit sur le projet , choisissez Propriétés , accédez à la section Débogage - il y a une boîte pour "Arguments de commande". (Astuce: pas une solution, mais un projet).

Lou Franco
la source
298
Stackoverflow est la seule documentation MS utilisable!
Martin Beckett
12
Soyez prudent avec ça. Cela ne changera pas le fichier de projet réel, mais le fichier vcxproj.user à la place.
TheTrowser
Remarque: si vous avez plusieurs projets dans une solution, n'oubliez pas de cliquer avec le bouton droit sur le projet que vous souhaitez exécuter et de "Définir comme projet de démarrage".
Lion Lai
1
Repérez. Mais apparemment dans VS2017, cela ne s'appelle pas "Debugging", mais "Debug". Nous ne saurons peut-être jamais pourquoi.
OmarL
3
Assurez-vous que la configuration correcte est sélectionnée dans la liste déroulante en haut des pages de propriétés, c'est-à-dire la même configuration que celle que vous essayez d'exécuter.
Steve Smith
55

La FAQ Mozilla.org sur le débogage de Mozilla sur Windows est intéressante ici.

En bref, le débogueur Visual Studio peut être appelé sur un programme à partir de la ligne de commande, ce qui permet de spécifier les arguments de la ligne de commande lors de l'appel d'un programme de ligne de commande, directement sur la ligne de commande.

Cela ressemble à ce qui suit pour Visual Studio 8 ou 9 (Visual Studio 2005 ou Visual Studio 2008, respectivement)

  devenv / debugexe 'nom du programme' 'arguments du programme'

Il est également possible d'avoir une action d'explorateur pour démarrer un programme dans le débogueur Visual Studio.

grrussel
la source
17

Même si vous démarrez l'exécutable en dehors de Visual Studio, vous pouvez toujours utiliser la commande "Attach" pour connecter Visual Studio à votre exécutable déjà en cours d'exécution. Cela peut être utile, par exemple lorsque votre application est exécutée en tant que plug-in dans une autre application.

MSalters
la source
Oui, attachez avec Ctrl+Alt+P(ou cliquez sur "Déboguer"> "Attacher au processus ..."). Mais cela ne répond pas vraiment à la question OP;)
T_D
7

Microsoft Visual Studio Ultima 2013.

Vous pouvez simplement aller au menu DEBUG → Propriétés principalespropriétés de configurationDebugging et vous verrez la boîte pour les arguments de ligne de commande.

En fait, vous pouvez définir les mêmes arguments d'entrée pour toutes les différentes configurations et pas seulement pour le débogage.

Dans le menu déroulant de la configuration, sélectionnez: Toutes les configurations et insérez les arguments d'entrée (chaque argument étant séparé par un espace).

Maintenant, vous pouvez exécuter votre programme dans différents modes sans avoir à changer les arguments d'entrée à chaque fois.

jorge
la source
Cela fonctionne un peu comme ça dans MS VS 2015 également. Avant de me diriger vers les propriétés "Debug-> {projectname}", j'ai dû ouvrir le "Configuration Manager" accessible via le menu déroulant contenant par défaut "Debug" et "Release". Une fenêtre est apparue où j'ai pu ajouter de nouveaux éléments de "Configuration". Ces éléments sont disponibles dans "Debug -> {projectname} properties".
AMartinNo1
2

Cela peut aider certaines personnes qui ont encore des problèmes. J'utilise Visual Studio 2015 et je n'ai pu passer les arguments que lorsque j'ai changé la définition de argv.

Au lieu de

int main(int argc, char **argv){
}

Je devais utiliser

int main(int argc, char *argv[]){
}

Je ne sais pas pourquoi c'était nécessaire, mais ça marche.

Blubsiwubsi
la source
Qu'est-ce que c'est? Natif C ++? Géré en C ++ (.NET)?
Peter Mortensen
Eu le même problème mais les deux déclarations mentionnées ci-dessus ne fonctionnaient pas. La solution a changé la plate-forme de x86 à x64 depuis que je travaille sur une machine 64 bits.
hfrmobile
2

Dans Visual Studio 2017 avec une application console .NET Core , procédez comme suit:

Faites un clic droit sur le projet dans la fenêtre Solution , sélectionnez "Propriétés", Déboguer (sur le côté gauche), et entrez les arguments dans le champ "Arguments d'application" .

Notez qu'ils doivent être séparés par des espaces.

Yahya Hussein
la source
1

Dans Visual Studio 2010, cliquez avec le bouton droit sur le projet, choisissez Propriétés , cliquez sur la section des propriétés de configuration dans le volet gauche, puis cliquez sur Débogage , puis dans le volet droit il y a une boîte pour les arguments de commande.

Dans cela, entrez les arguments de la ligne de commande. Tu es prêt. Maintenant, déboguez et voyez le résultat. Si vous en avez assez de changer les propriétés, donnez temporairement l'entrée directement dans le programme.

Sam
la source
1

Cliquez avec le bouton droit sur le projet dans la fenêtre Solution de Visual Studio, sélectionnez "Débogage" (sur le côté gauche) et entrez les arguments dans le champ "Arguments de commande" :

Entrez la description de l'image ici

Andrushenko Alexander
la source
1

Avec VS 2015 et versions ultérieures, utilisez l' extension Smart Command Line Arguments . Ce plug-in ajoute une fenêtre qui vous permet d'activer et de désactiver les arguments:

Interface Smart Command Line Arguments

L'extension stocke en outre les arguments dans un fichier JSON, vous permettant de les valider dans le contrôle de code source. En plus de vous assurer que vous n'avez pas à taper tous les arguments à chaque fois, cela sert de complément utile à votre documentation pour que les autres développeurs découvrent les options disponibles.

jpmc26
la source