Notez que vous ne devez pas oublier l'utilisation de simulateurs, les machines et le matériel, les enregistreurs de mettre en œuvre inverse de l'exécution.
Une autre solution pour la mettre en œuvre est de suivre la trace d'exécution sur le matériel physique, comme c'est le cas par GreenHills et Lauterbach dans leur matériel de base de débogueurs. Sur cette base fixe trace de l'action de chaque instruction, vous pouvez alors passer à n'importe quel point de la trace en supprimant les effets de chaque instruction à son tour. Notez que cela suppose que vous pouvez suivre toutes les choses qui affectent l'état visible dans le débogueur.
Un autre moyen est d'utiliser un point de contrôle + ré-exécution de la méthode, qui est utilisée par VmWare Workstation 6.5 et Virtutech Simics 3.0 (ou version ultérieure), et qui semble être à venir avec Visual Studio 2010. Ici, vous utilisez une machine virtuelle ou un simulateur d'obtenir un niveau d'indirection sur l'exécution d'un système. Vous régulièrement dump l'ensemble de l'état du disque ou de mémoire, puis appuyer sur le simulateur d'être en mesure de la conception déterministe de la ré-exécuter le même programme et chemin d'accès.
Simplifié, il fonctionne comme ceci: dire que vous êtes à l'instant T dans l'exécution d'un système. Pour aller à l'instant T-1, vous de ramasser du point de contrôle du point t < T, puis sur exécuter (T-t-1) cycles pour la fin d'un cycle avant de l'endroit où vous étiez. Cela peut être fait pour fonctionner très bien, et à appliquer, même pour les charges de travail qui ne d'e / s disque, composé au niveau du noyau de code, et effectue le pilote de périphérique de travail. La clé est d'avoir un simulateur qui contient l'ensemble du système cible, avec tous ses processeurs, périphériques, des souvenirs, et IOs. Voir le gdb liste de diffusion et à la discussion suivante que sur le gdb liste de diffusion pour plus de détails. J'utilise cette approche moi-même assez régulièrement pour déboguer difficile de code, en particulier dans les pilotes de périphérique et au début de l'OS démarre.
Une autre source d'information est un Virtutech livre blanc sur la vérification (qui je l'ai écrit, la divulgation complète).