Comment déboguer une condition de course


Si vous parlez de langages qui compilent en bytecode, comme Java, Scala, JRuby, Jython et autres (voir Liste des langages JVM ), vous pouvez utiliser la technologie mise en œuvre dans l'outil Race Catcher™ de Thinking Software, Inc. | Gestion et surveillance de la fiabilité des applications.

Race Catcher est un analyseur de code dynamique avec un taux de faux positifs de 0% et un très faible surcoût permettant son utilisation dans toutes les étapes de votre cycle de vie logiciel, développement, Test/QA, et support de production. Il est disponible pour vos machines locales et vos machines sur le cloud (AWS Marketplace - race catcher).


Cet outil fonctionne sur le bytecode et ne nécessite pas la présence du code source pour analyser les Race Conditions (et Deadlocks). Le code source ne sera nécessaire que plus tard afin d'expliquer les problèmes localisés à un programmeur (cependant, la décompilation est fournie par cet outil dans le cas de l'open source).

Une caractéristique très spécifique (outre le taux de faux positifs de 0 % et le faible surcoût) est une interface utilisateur très intuitive qui éliminera le besoin de " reproduire le problème " et, par conséquent, éliminera la tension habituelle entre les testeurs et les programmeurs. L'interface utilisateur reproduira et réexpliquera les problèmes à la demande à tout moment pendant ou après l'exécution du processus cible.

L'utilisation de cet outil est extrêmement simple :

Vous pouvez démarrer votre processus en remplaçant "java" par "jta" (I.e. "java -jar monJar.jar" deviendrait "jta -jar monJar.jar")

Else vous pouvez ajouter le paramètre "-javaagent" dans le script de démarrage de votre application.

Disclaimer : Cette technologie est développée dans notre société, Thinking Software, Inc. Thinking Software, Inc. | Gestion et surveillance de la fiabilité des applications

.