On ne présente plus ni Duke Nukem 3D, ni Valgrind. Les deux outils sont très complémentaires : d’un côté, nous avons un émulateur de processeur RISC qui permet de faire une abstraction des instructions d’origine, d’un autre vous avez un jeu d’arcade qui permet de supporter de longues heures passées sur le premier ! Alors, pourquoi ne pas être dans l’honnêteté intellectuelle la plus complète et fusionner les deux outils afin de rendre le debugging great again ?
1. À la découverte de valgrind !
Valgrind est un outil fantastique, qui a déjà plusieurs années au compteur et permet aux développeurs bas niveau d’éviter principalement les problèmes de fuites mémoires... mais pas seulement : Valgrind permet aussi de débugger les conditions d’exécution (race conditions) ou, ce que je préfère personnellement, le profilage avec des fichiers créés que l’on ouvre ensuite dans l’interface KCachegrind afin de déterminer les fonctions qui prennent le plus de temps.
Valgrind permet une abstraction du processeur et permet de traduire les instructions en code RISC via la machine virtuelle VEX les différents processeurs suivants : arm64, amd64, ppc32, ppc64, arm v8, mips32, mips64, x86 et s390x.
La machine virtuelle compile en temps réel (JIT) cette abstraction et permet de décoder le code CPU invité pour assembler le code hôte. Coregrind permet d’émuler les appels systèmes du système d’exploitation.
Les...
- Accédez à tous les contenus de Connect en illimité
- Découvrez des listes de lecture et des contenus Premium
- Consultez les nouveaux articles en avant-première