Comment déboguer objet COM dans Visual Studio 6.0 qui est créé dans une page ASP?

StackOverflow https://stackoverflow.com/questions/370250

  •  21-08-2019
  •  | 
  •  

Question

J'ai un vieux C ++ composant COM qui doit rester au format Visual Studio 6.0. Je ne peux pas pour la vie de me comprendre comment déboguer le code dans le composant COM réelle.

Je suis en mesure de construire en mode débogage, ajouter des points d'arrêt et le joindre au processus de dllhost.exe, mais l'environnement Visual Studio ne me montrer le démontage de dllhost.exe et non mon code source (Il a également doesn « t arrêt sur les points d'arrêt).

Je me souviens il y a un moment il y avait un moyen de rendre IIS (ou inetinfo.exe) cible de votre action de débogage (lorsque Visual Studio 6.0 vous demande l'exécutable pour lancer votre dll) et IIS serait exécuté dans un seul mode de traitement. Il y avait une clé de Registre vous avez besoin de changer, mais googler n'a pas aidé.

Était-ce utile?

La solution

Si elle est un composant COM à base de VB6, vous pouvez ouvrir le projet en VB6 et l'exécuter (un projet DLL ne peut pas être exécuté). Les propriétés du projet a une option selon laquelle il peut être demandé de courir pour qu'il fonctionne et enregistre lui-même.

Maintenant, essayez de frapper la page ASP, ce qui en fait un appel à un composant COM. Les points d'arrêt dans les fichiers de classe seront touchés, car les appels sont fabriqués à partir de la page ASP.

Autres conseils

Tout d'abord, le fichier PDB (produit au cours de la compilation) doit être dans le même répertoire avec DLL (peut être définie dans les propriétés du projet).

Si votre objet n'utilise pas certaines fonctionnalités spécifiques à l'ASP (requête, réponse, d'objets de session), vous pouvez copier son code d'invocation fichier .vbs et le débogage via la mise en cscript.exe your.vbs programme cible de débogage.

Il y a des explications ( par exemple ) comment déboguer DLL ISAPI - elles sont applicables à votre objet COM trop (du point OS / débogueur de vue les deux sont chargés dans le processus DLL IIS). Mettez votre attention sur la version IIS et / hors processus choses.

Enfin, si rien d'autre aide, vous pouvez ajouter un peu de journalisation via OutputDebugString fonction et le voir en libre DebugView programme.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top