J'ai un service C# qui appelle une DLL C écrite à l'origine dans VC6.Débogage du code natif
Il y a un bogue dans la DLL que j'essaie d'inspecter. Après avoir eu un cauchemar en essayant de faire fonctionner le débogage j'ai fini par ajouter la DLL à la solution VS2005 contenant le service C# et j'ai ajouté le _CRT_SECURE_NO_WARNINGS
nécessaire.
La version de débogage du service est enregistrée à l'aide de l'outil 'installutil.exe'.
Je peux obtenir le débogueur à se casser juste avant la ligne où la DLL est entrée via un appel à System.Diagnostics.Debugger.Break();
.
J'ai trouvé quelques instructions sur le net pour passer au débogage du code non managé et activé la case à cocher 'Activer le débogage de code non managé', j'ai également essayé d'activer les options-> Débogage-> Native 'Load DLL exports' et 'Activer le débogage RPC' (même si ce n'est pas COM). J'ai également copié le debug dll et .pdb dans le même répertoire bin que le service.
Cependant le code non managé n'est pas entré dans lequel est ce dont j'ai vraiment besoin.
MISE À JOUR: J'ai trouvé le type de débogage dans les propriétés de la DLL et l'ai défini sur 'Mixed' comme suggéré sur plusieurs sites mais en vain.
UPDATE2: Mon projet émet maintenant la DLL de débogage et le pdb dans le même répertoire que le service de débogage. Toujours incapable de déboguer la DLL.
C'est un service - vous ne pouvez pas exécuter un service en tant qu'application. –
Euh, je me demandais à ce sujet. Je ne sais pas grand-chose des services que j'ai peur. Comment déboguer un service sans le problème de DLL? –
En outre, si vous ne pouvez pas obtenir ce travail via un autre moyen, vous pouvez écrire une application C# très simple juste pour déboguer la DLL. –