Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[Eclipse] Filtres de debuggage

2 réponses
Avatar
Javajug
Bonjavour ! (ah oui, c'est nul, en effet.)

Dans Eclipse, est-ce que quelqu'un sait s'il est possible de n'activer
un point d'arrêt que s'il est atteint *à partir* d'une certaine classe
et pas d'une autre ? (ou package)
Je ne pense pas que les Step Filters soient la solution, je veux
quand-même que le point d'arrêt soit actif s'il y a la classe "C" dans
la stacktrace... (je ne veux donc pas mettre la classe dans laquelle est
le point d'arrêt dans les Step Filters, sinon il ne s'y arrêterait jamais)
Cas d'utilisation : debuggage d'une méthode utilitaire appelée pleins
de fois depuis plein d'endroits différents, mais je ne veux m'y arrêter
que s'il est atteint "en passant" par la classe "C".

...ou alors l'inverse : je ne veux pas m'y arrêter s'il est atteint
depuis la classe "C", mais depuis les autres classes oui...

Merci de votre temps !

2 réponses

Avatar
Javajug
Le 09/02/2016 11:06, Javajug a écrit :
Bonjavour ! (ah oui, c'est nul, en effet.)

Dans Eclipse, est-ce que quelqu'un sait s'il est possible de n'activer
un point d'arrêt que s'il est atteint *à partir* d'une certaine classe
et pas d'une autre ? (ou package)
Je ne pense pas que les Step Filters soient la solution, je veux
quand-même que le point d'arrêt soit actif s'il y a la classe "C" dans
la stacktrace... (je ne veux donc pas mettre la classe dans laquelle est
le point d'arrêt dans les Step Filters, sinon il ne s'y arrêterait jamais)
Cas d'utilisation : debuggage d'une méthode utilitaire appelée
pleins de fois depuis plein d'endroits différents, mais je ne veux m'y
arrêter que s'il est atteint "en passant" par la classe "C".

...ou alors l'inverse : je ne veux pas m'y arrêter s'il est atteint
depuis la classe "C", mais depuis les autres classes oui...

Merci de votre temps !



PS : Je suis sous Eclipse Luna (4.4.2), mais j'avais également cherché
rapidement sous Mars sans succès...
Avatar
Samuel DEVULDER
Le 09/02/2016 11:06, Javajug a écrit :

...ou alors l'inverse : je ne veux pas m'y arrêter s'il est atteint
depuis la classe "C", mais depuis les autres classes oui...



C'est du code modifiable auquel tu as accès ?

Si oui: dans le code, crée toi une instance de RuntimeException et
examine les StackTraceElement via getStackTrace(). Dans les
StackTraceElements tu as un getClassName() qui est ce que tu recherches.
Après suivant que tu trouve ta classe C, tu active ou pas un point d'arret.

Si non: peut-être qu'un point d'arret conditionnel qui implement l'idée
ci-dessus irait aussi bien.

Nota: a va rammer un max, mais tant pis.

a+

sam.