Maison >développement back-end >C++ >Comment puis-je surveiller l'accès aux variables et les lectures/écritures de mémoire dans GDB à l'aide de points d'arrêt ?
Dans GDB, vous pouvez définir des points d'arrêt pour surveiller des variables spécifiques et identifier quand elles sont consultées ou modifiées. Voici un aperçu des commandes et techniques GDB à cet effet :
Commandes Watchpoint :
Définition de points de surveillance sur des emplacements mémoire :
Vous pouvez définir des points de surveillance sur des emplacements de mémoire à l'aide de la commande rwatch :
gdb$ rwatch *0xfeedface
Cela déclenchera un point d'arrêt chaque fois que l'adresse mémoire 0xfeedface est lue.
Limitations des points de surveillance sur les expressions :
Notez que les points de surveillance GDB ne peuvent pas être définis sur des expressions impliquant des variables :
gdb$ rwatch $ebx+0xec1a04f Expression cannot be implemented with read/access watchpoint.
Pour contourner ce problème, développez manuellement le expression :
gdb$ print $ebx = 0x135700 gdb$ rwatch *0x135700+0xec1a04f
Support matériel ou logiciel :
Les points de surveillance matériels offrent des performances plus rapides que les points de surveillance logiciels. Pour vérifier si votre système d'exploitation prend en charge les points de surveillance matériels, exécutez la commande suivante :
gdb$ show can-use-hw-watchpoints
Si la sortie est 1, les points de surveillance matériels sont disponibles.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!