Déboguer à partir d’un projet DLL dans Visual Studio (C#, C++, Visual Basic, F#)

Une façon de déboguer un projet DLL consiste à spécifier l’application appelante dans les propriétés du projet DLL. Vous pouvez ensuite commencer le débogage à partir du projet DLL lui-même. Pour que cette méthode fonctionne, l’application doit appeler la même DLL au même emplacement que celle que vous configurez. Si l’application trouve et charge une autre version de la DLL, cette version ne contient pas vos points d’arrêt. Pour les autres méthodes de débogage de DLL, consultez Débogage de projets de DLL.

Si votre application managée appelle une DLL native ou si votre application native appelle une DLL managée, vous pouvez déboguer la DLL et l’application appelante. Pour plus d’informations, consultez Guide pratique pour déboguer en mode mixte.

Les projets DLL natifs et managés ont des paramètres différents pour spécifier les applications appelantes.

Spécifier une application appelante dans un projet DLL natif

  1. Sélectionnez le projet DLL C++ dans l’Explorateur de solutions. Sélectionnez l’icône Propriétés, appuyez sur Alt+Entrée ou cliquez avec le bouton droit et choisissez Propriétés.

  2. Dans la boîte de dialogue Pages de propriétés du <projet>, vérifiez que le champ Configuration en haut de la fenêtre est défini sur Débogage.

  3. Sélectionnez Propriétés de configuration>Débogage.

  4. Dans la liste Débogueur à lancer, choisissez Débogueur Windows local ou Débogueur Windows distant.

  5. Dans la zone Commande ou Commande à distance, ajoutez le chemin complet et le nom de fichier de l’application appelante, par exemple un fichier .exe.

    Debug Properties window

  6. Ajoutez les arguments nécessaires du programme à la zone Arguments de la commande.

  7. Sélectionnez OK.

Spécifier une application appelante dans un projet DLL C# (.NET Core, .NET 5+)

  1. Sélectionnez le projet DLL C# ou Visual Basic dans l’Explorateur de solutions. Sélectionnez l’icône Propriétés, appuyez sur Alt+Entrée ou cliquez avec le bouton droit et choisissez Propriétés.

  2. Sous l’onglet Débogage, sélectionnez Ouvrir l’interface utilisateur de profils de lancement de débogage.

  3. Dans la boîte de dialogue Profils de lancement, sélectionnez l’icône Créer un profil, puis Exécutable.

    Screenshot of the UI to create a new debug profile.

  4. Dans le nouveau profil, sous Exécutable, accédez à l’emplacement du fichier exécutable (fichier .exe) et sélectionnez-le.

  5. Dans la boîte de dialogue Profils de lancement, notez le nom du profil par défaut, puis sélectionnez-le et supprimez-le.

  6. Renommez le nouveau profil du même nom que le profil par défaut.

    Vous pouvez également modifier manuellement launchSettings.json pour obtenir le même résultat. Vous souhaitez que le premier profil dans launchSettings.json corresponde au nom de la bibliothèque de classes et qu’il soit répertorié en premier dans le fichier.

Spécifier une application appelante dans un projet DLL managé

  1. Sélectionnez le projet DLL C# ou Visual Basic dans l’Explorateur de solutions. Sélectionnez l’icône Propriétés, appuyez sur Alt+Entrée ou cliquez avec le bouton droit et choisissez Propriétés.

  2. Vérifiez que le champ Configuration en haut de la fenêtre est défini sur Débogage.

  3. Sous Action de démarrage :

    • Pour les DLL .NET Framework, sélectionnez Démarrer le programme externe, puis ajoutez le chemin complet et le nom de l’application appelante.

    • Vous pouvez également sélectionner Démarrer le navigateur avec l’URL et renseigner l’URL d’une application ASP.NET locale.

    • Pour les DLL .NET Core en Visual Basic, la page Propriétés de Débogage est différente. Sélectionnez Exécutable dans la liste déroulante Lancement, puis ajoutez le chemin complet et le nom de l’application appelante dans le champ Exécutable.
    • Pour les DLL .NET Core, la page Propriétés de Débogage est différente. Sélectionnez Exécutable dans la liste déroulante Lancement, puis ajoutez le chemin complet et le nom de l’application appelante dans le champ Exécutable.
  4. Ajoutez tous les arguments de ligne de commande nécessaires dans le champ Arguments de ligne de commande ou Arguments de l’application.

    C# Debug Properties window

  5. Utilisez Fichier>Enregistrer les éléments sélectionnés ou Ctrl+S pour enregistrer les modifications.

Déboguer à partir du projet DLL

  1. Définissez des points d’arrêt dans le projet DLL.

  2. Cliquez avec le bouton droit sur le projet DLL et choisissez Définir comme projet de démarrage.

  3. Vérifiez que le champ Configuration des solutions est défini sur Débogage. Appuyez sur F5, cliquez sur la flèche verte Démarrer, ou sélectionnez Débogage>Démarrer le débogage.

Conseils supplémentaires :

  • Si le débogage n’atteint pas vos points d’arrêt, assurez-vous que votre sortie DLL (par défaut, le dossier <project>\Debug ) correspond à l’emplacement que l’application appelante demande.

  • Si vous souhaitez insérer du code dans une application d’appel managée à partir d’une DLL native, ou vice versa, activez le débogage en mode mixte.

  • Dans certains scénarios, vous devrez peut-être indiquer au débogueur où trouver le code source. Pour plus d’informations, consultez Utiliser les pages Aucun symbole n’a été chargé/Aucune source n’a été chargée.