6

Je développe une bibliothèque de classes. La bibliothèque doit être utilisée par un autre programme, un fichier .exe sans code source. L'emplacement du fichier de bibliothèque est passé en paramètre à cet exe, par exemple en exécutant: prog.exe lib.dllVisual Studio: comment déboguer une bibliothèque avec un exécutable externe?

Je voudrais déboguer la bibliothèque en utilisant ce fichier .exe (en utilisant des outils de débogage tels que des points d'arrêt, etc.) Comment utiliser Visual C# pour le faire?

J'ai trouvé un moyen possible, qui est la création d'un programme d'une ligne qui exécutent prog.exe lib.dll. Sûrement il y a un meilleur moyen?

Répondre

1

Si vous avez déjà un programme externe qui utilisent votre bibliothèque (qui alors est aussi une application .net, je suppose), vous pouvez commencer à ce programme et attacher le débogueur au processus (Debug ->Joindre pour traiter dans le menu). Ensuite, vous serez en mesure de définir des points d'arrêt dans votre code de bibliothèque de classe et de le déboguer. Assurez-vous que l'exe utilise un fichier dll et pdb qui est en synchronisation avec votre code (la dernière version).

+1

Les versions Express ne sont pas la fonctionnalité de débogage des processus externes : http://msdn.microsoft.com/en-us/library/c6wf8e4z.aspx – Robert

2

Dans les options de débogage du projet, sélectionnez "Démarrer le programme externe" et entrez le chemin de l'exe. Au démarrage du débogage, VS lancera l'exe, s'y attachera en tant que débogueur. Lorsque votre bibliothèque est chargée, tous les points d'arrêt sur votre code seront activés. Une mise en garde: avec un programme externe s'assurer qu'il charge la DLL que vous construisez, les choses peuvent être (au mieux) bizarres si le chargement d'une version différente ne correspond pas au code source.

+0

"Démarrer le programme externe" n'apparaît pas dans l'option de débogage du projet. Je n'ai que des arguments de ligne de commande et le répertoire de travail. J'ai essayé d'ajouter le chemin du programme à l'argument de la ligne de commande, il ne permet toujours pas le débogage. –

+0

Est-ce parce que j'ai l'édition express? –

+0

@Louis: cela pourrait être un problème (ne pas avoir d'express, donc ne peut pas vérifier). – Richard

0
  1. Vous pouvez probablement essayer windbg. avec l'extension sos, il est très possible de tout ce que vous faites avec Visual Studio.
  2. Si vous voulez simplement déboguer la bibliothèque, alors pourquoi ne pouvez pas vous charger cette bibliothèque dans un exe que vous avez créé et étape dans la bibliothèque,
Questions connexes