Je sais que nous pouvons utiliser plusieurs commandes pour accéder et lire la mémoire : par exemple, imprimer, p, x...
Mais comment puis-je modifier le contenu de la mémoire à n’importe quel emplacement spécifique (lors du débogage dans GDB)?
Je sais que nous pouvons utiliser plusieurs commandes pour accéder et lire la mémoire : par exemple, imprimer, p, x...
Mais comment puis-je modifier le contenu de la mémoire à n’importe quel emplacement spécifique (lors du débogage dans GDB)?
Le plus simple est de définir une variable de programme (voir GDB : affectation) :
Ou vous pouvez simplement mettre à jour l’emplacement arbitraire (inscriptible) par adresse:
Ce n’est pas tout. Lisez le manuel.
Comme Nikolai l’a dit, vous pouvez utiliser la commande gdb 'set' pour changer la valeur d’une variable.
Vous pouvez également utiliser la commande 'set' pour modifier les emplacements de mémoire. Eg. Développant l’exemple de Nikolai:
Cela devrait fonctionner pour n’importe quel pointeur valide et peut être converti en n’importe quel type de données approprié.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.