Outils de profilage et de journalisation - Notes sur l'édition


1.0 Restrictions
   1.1 Les filtres de profilage échouent dans certaines conditions

1.0 Restrictions

1.1 Les filtres de profilage échouent dans certaines conditions

Problème :

Le filtre A ne fonctionne pas s'il existe un filtre B tel que :

B est placé avant A et les classes correspondant à B correspondent aussi à A.

Par exemple, si les filtres sont :

ClassA* method* INCLUDE * * EXCLUDE

alors la méthode initialize() de ClassABC sera incluse par erreur par le premier filtre car son nom de classe correspond au masque classA*, même si le nom de la méthode ne correspond pas au masque de la méthode. De même, le masque suivant inclut toutes les méthodes commençant par ClassA :

ClassA* method* INCLUDE ClassA* * EXCLUDE

car le deuxième filtre est toujours ignoré.

Solution :

Par défaut, si une classe ou une méthode ne correspond à aucun filtre, elle est incluse. Par conséquent, n'utilisez jamais de filtre INCLUDE et utilisez les filtres EXCLUDE uniquement. Puisque seul le premier masque de classe correspondant est pris en compte, vous ne pouvez spécifier qu'un filtre EXCLUDE par classe, et dans ce filtre, vous pouvez utiliser un masque de méthode pour indiquer les méthodes à exclure. Exemple :

ClassA method* EXCLUDE ClassB call* EXCLUDE

Retour au fichier readme principal