Partager via


Débogage de composants écrits en Visual C++

Lorsque vous êtes prêt à déboguer la fonctionnalité COM+ dans vos composants Microsoft Visual C++, vous pouvez configurer le projet Visual C++ ou l’outil d’administration Services de composants pour lancer le débogueur. Si vous utilisez Visual C++, vous pouvez déboguer avec un client distant à l’aide d’OLE RPC et du débogage juste-à-temps (JIT). Si vous ne parvenez pas à exécuter votre client sous le débogueur ou si le client s’exécute sur un autre ordinateur, vous pouvez utiliser le paramètre Lancement COM+ dans le débogueur . Vous trouverez cela dans l’outil d’administration Services de composants sous la forme d’une zone de case activée de l’onglet Avancé de la boîte de dialogue Propriétés de l’application COM+.

Une fois le débogage terminé, vous devez arrêter les applications COM+ que vous déboguez. Si un processus serveur est en cours d’exécution, vous risquez d’obtenir un message d’erreur la prochaine fois que vous essayez de générer une DLL lorsque la DLL existante est toujours chargée en mémoire. Pour arrêter une application COM+, cliquez avec le bouton droit sur l’application dans l’arborescence de la console, puis cliquez sur Arrêter.

Notes

Si vous utilisez des transactions, vous pouvez également augmenter le délai d’attente de la transaction, qui est par défaut de 60 secondes. Vous pouvez également spécifier une valeur de 0, en spécifiant un délai d’attente de transaction infini. À l’aide de l’outil d’administration Services de composants, modifiez le paramètre de délai d’attente de transaction sous l’onglet Options de la fenêtre Propriétés du poste de travail .

 

Débogage des composants d’application serveur avec Visual C++

Lors du débogage d’applications serveur COM+, vous pouvez déboguer les appels distants en chargeant à la fois le client et l’application serveur dans le débogueur. Avec Visual C++, vous pouvez déboguer des appels distants à vos composants via les paramètres juste-à-temps (JIT) et OLE RPC. Le paramètre JIT entraîne le démarrage du composant compilé du débogueur Visual C++ lorsqu’une erreur se produit ; Le paramètre OLE RPC permet au débogueur de passer du client au composant à mesure que vous parcourez votre code.

Lorsque ces fonctionnalités sont activées, vous pouvez démarrer votre client sous le débogueur. Lorsque le client effectue un appel à votre composant, le débogueur effectue un pas à pas détaillé dans le code du composant dans le processus serveur, même si le serveur se trouve sur un autre ordinateur sur le réseau. Une session de débogage est automatiquement démarrée sur l’ordinateur serveur si nécessaire. De même, un simple pas à pas au-delà de l’instruction return dans le code du composant renvoie le débogage à l’instruction suivante dans le code du client.

Notes

Vous pouvez peut-être enregistrer quelques étapes à l’aide du paramètre Lancement COM+ dans le débogueur . Cela vous permet de spécifier le débogueur Visual C++ (ou un autre) sans avoir à définir des paramètres de débogage spéciaux dans l’environnement Visual C++. Vous trouverez cela dans l’outil d’administration Services de composants sous la forme d’une zone de case activée de l’onglet Avancé de la boîte de dialogue Propriétés de l’application COM+. Pour plus d’informations, consultez « Débogage sans Visual C++ » dans cette rubrique.

 

Lorsque l’application COM+ contenant votre composant est une application serveur, vous devez commencer par arrêter l’application à l’aide de l’outil d’administration Services de composants. Pour ce faire, cliquez avec le bouton droit sur l’application COM+ dans l’arborescence de la console, puis cliquez sur Arrêter.

Pour activer le débogage RPC dans Visual C++

  1. Dans Visual C++, dans le menu Outils , cliquez sur Options.

  2. Dans la boîte de dialogue Options, sous l’onglet Déboguer, sélectionnez les zones débogage OLE RPC et Débogage juste-à-temps case activée.

  3. Cliquez sur OK.

Pour commencer le débogage, démarrez votre projet client dans le débogueur.

Vous pouvez également déboguer votre composant sans lancer votre client dans le débogueur. Dans ce cas, votre composant doit lancer le débogueur seul. Pour ce faire, votre projet de composant doit spécifier un exécutable pour la session de débogage, ainsi que l’ID d’application COM+.

Pour permettre à un composant d’application serveur de lancer le débogueur Visual C++

  1. Dans le menu Projet , cliquez sur Paramètres.

  2. Dans la boîte de dialogue Paramètres du projet , dans la zone Paramètres pour , sélectionnez Déboguer Win32.

  3. Sous l’onglet Déboguer , dans la zone Catégorie , sélectionnez Général.

  4. Dans la zone Exécutable pour la session de débogage , entrez le chemin d’accès complet pour Dllhost.exe, suivi d’un argument spécifiant l’ID d’application de l’application COM+ contenant le composant.

    Notes

    À l’aide de l’outil d’administration Services de composants, vous trouverez l’ID d’application sous l’onglet Général de la boîte de dialogue Propriétés de l’application COM+. Vous trouverez ci-dessous un exemple :

     

    Notes

    C:\Winnt\System32\Dllhost.exe /ProcessID:{applicationID}

     

  5. Cliquez sur OK.

Vous pouvez maintenant définir des points d’arrêt, démarrer le débogueur et commencer à passer des appels à votre composant.

Débogage des composants d’application de bibliothèque avec Visual C++

Pour déboguer des composants dans une application de bibliothèque, vous devez configurer le projet du client, car le processus du client hébergera l’application de bibliothèque.

Pour activer le débogage d’applications de bibliothèque avec Visual C++

  1. Dans Visual C++, dans le menu Projet , cliquez sur Paramètres.

  2. Dans la boîte de dialogue Paramètres du projet , dans la zone Paramètres pour , cliquez sur Win32 Déboguer.

  3. Sous l’onglet Débogage , dans la zone Catégorie , cliquez sur DLL supplémentaires.

  4. Dans la liste Modules , ajoutez les DLL de composant dans votre application de bibliothèque. Cela vous permet de définir des points d’arrêt avant le chargement de votre DLL.

  5. Cliquez sur OK.

Débogage sans Visual C++

Que vous utilisiez Ou non Visual C++ pour le débogage, vous pouvez utiliser le paramètre Lancer dans le débogueur pour spécifier le débogueur dans lequel vos composants doivent s’exécuter.

Pour spécifier un débogueur à partir de l’outil d’administration Services de composants

  1. Dans l’arborescence de la console, sélectionnez l’application de bibliothèque COM+ contenant les composants que vous souhaitez déboguer.

  2. Cliquez avec le bouton droit sur l’application, puis cliquez sur Propriétés.

  3. Dans la boîte de dialogue Propriétés de l’application, cliquez sur l’onglet Avancé .

  4. Sous Débogage, sélectionnez la zone Lancer dans le débogueur case activée.

  5. Dans la zone Chemin du débogueur , entrez le chemin du débogueur que vous souhaitez utiliser. Vous pouvez également cliquer sur Parcourir pour localiser le débogueur. Voici un exemple : C:\Winnt\System32\Ntsd.exe.

  6. Cliquez sur OK.

Débogage de composants écrits en Visual Basic