Prise en charge du débogage des Visual Basic COM+ avec MTS
COM+ supprime ou réduit plusieurs limites du débogage avec Microsoft Visual Basic 6,0 et MTS. La liste suivante récapitule les modifications que vous pouvez attendre avec COM+ :
Débogage de plusieurs composants : dans COM+, vous pouvez déboguer des scénarios dans lesquels un client s’exécutant dans une instance de l’IDE effectue des appels à n’importe quel nombre de dll s’exécutant dans un autre en tant que groupe de projets. Les objets dans les projets de DLL groupés peuvent se composer les uns les autres arbitrairement, en passant le contexte en fonction des besoins. Bien entendu, cela fonctionne également lorsque les dll et le client se trouvent dans le même groupe de projets dans la même instance de l’IDE.
Limitations du débogage pour _ les événements Class Initialize et Class _ Terminate : avec com+, vous pouvez placer du code dans les _ événements Class Initialize et Class _ Terminate d’un composant d’application com+ même si ce code tente d’accéder à l’objet ou à son objet de contexte correspondant. Vous pouvez définir des points d’arrêt à cet emplacement et utiliser des montres. Vous pouvez également définir des points d’arrêt dans l’événement de fin de classe _ .
Bien qu’il ne soit plus nécessaire comme solution de contournement, vous pouvez toujours implémenter l’interface IObjectControl et utiliser ses méthodes Activate et Deactivate si vous devez exécuter du code au démarrage et à l’arrêt de votre composant. Vous pouvez également placer des points d’arrêt dans le code pour les méthodes Deactivate ou CanBePooled .
La surveillance des objets MTS : avec COM+, vous pouvez ajouter des espions pour les variables d’objet retournées par COM+, y compris les valeurs de retour des méthodes SafeRef, GetObjectContextet IObjectContext :: CreateInstance .
Stabilité accrue lorsque les composants échouent : dans COM+, l’échec d’un composant ne s’arrête toujours pas Visual Basic (qui s’exécute dans le même processus que le composant débogué). Par exemple, la prise en charge des échecs de réactivation juste-à-temps (JIT) vous permet désormais d’examiner le contexte de l’objet pendant le débogage.
Le débogueur peut réactiver les objets publiés par COM+ : comme avec MTS, Visual Basic 6,0 peut réactiver les objets COM+ pendant que vous déboguez une seule étape via un client. En raison de la façon dont Visual Basic 6,0 Découvre des informations sur les objets, il s’agit d’un comportement attendu. Considérons par exemple le code suivant :
Dim obj As Object Set obj = CreateObject("MyApp.MyClass") obj.Test 'Call the user-defined subroutine named Test. Set obj = NothingSi le obj. La méthode de test appelle IObjectContext :: SetComplete, com+ libère immédiatement obj de la mémoire, mais obj n’a pas encore été défini sur Nothing. Quand obj. Le test retourne, le débogueur Visual Basic appelle QueryInterface sur obj pour l’interface IProvideClassInfo . Le wrapper de contexte associé à obj crée une nouvelle instance de MyApp. MyClass pour traiter l’appel QueryInterface . En conséquence, vous verrez cet objet non initialisé dans le débogueur après obj. Le test a été retourné. Cet objet apparaît uniquement dans le débogueur et est supprimé par l’instruction suivante pour affecter à obj la valeur Nothing.