Je travaille actuellement sur un compilateur Java. Dans le contexte du compilateur, des entrées légèrement différentes peuvent entraîner une sortie différente (par exemple, l'ajout de final
en Java permet au compilateur d'effectuer plus d'optimisations). Dans certains autres cas, des entrées différentes peuvent aboutir à la même sortie (par exemple, supprimer certaines constructions - pour chaque boucle). Lorsque je débogue comment un compilateur gère ces cas, j'exécute généralement le compilateur et essaye de comprendre où le chemin d'exécution d'exécution du compilateur diverge (ou converge). Inutile de dire que c'est très fastidieux.Débogage manipulant des entrées légèrement différentes
Je me demande si vous avez des conseils qui pourraient m'aider à déboguer ces situations.
En outre, existe-t-il un outil qui peut suivre deux exécutions de programme et vous fournir les différences du chemin d'exécution.