IntelliJ IDEA - Intégration de l'analyse des flux de données Java et du débogueur

Par:
fredericmazue

jeu, 19/03/2020 - 15:55

Java Dataflow Analysis (DFA) est capable de déduire des faits concernant votre programme : exceptions possibles, conditions toujours vraies/toujours fausses, et plus encore. Il effectue une interprétation abstraite du code source, ce qui lui permet de recueillir des informations sur l'exécution du code avant que celui-ci ne soit exécuté. Cependant, il ne sait presque rien des inputs apportés au code. Enfin, techniquement, si le paramètre de la méthode est annoté comme @NotNull, l'analyse se fie à cette annotation et suppose que null ne peut pas apparaître ici, mais ce n'est qu'une infime partie de l'information.

Par ailleurs, nous avons le débogueur. Lorsqu'il est stoppé à un point d'arrêt, il sait à peu près tout sur le programme : la valeur exacte de chaque variable et champ, le contenu de chaque tableau, et ainsi de suite. Ainsi, le débogueur connaît le présent et la DFA peut prédire l'avenir. Pourquoi ne pas transmettre les données présentes à la DFA et voir ce qui se passera ?

Lisez la suite de ce texte dans nos Avis d'experts