Je débogue un programme avec GDB.c - Problèmes avec les opérations sur les bits
unsigned int example = ~0;
me donne:
(gdb) x/4bt example
0xffd99788: 10101000 10010111 11011001 11111111
pourquoi ce n'est pas tous des 1? Je l'ai défini comme ~ 0 ... puis la ligne de code suivante est:
example>>=(31);
et GDB me donne quand je tente d'examiner la mémoire à des bits:
(gdb) x/4bt example
0xffffffff: Cannot access memory at address 0xffffffff
ce qui se passe ???
Etes-vous sûr que cette ligne est en cours d'exécution? Il peut ne pas être initialisé si vous "n'exécutez pas" votre programme après l'avoir chargé et que la variable est globale. Mettez un point d'arrêt dans le main et regardez autour. – luqui
Je sais que ça fonctionne. J'ai mis un point pour aller à une ligne avant de commencer à imprimer des choses – sepiroth
@luqui: Il ne peut pas être global si la "ligne suivante" est 'example >> = (31);'. – Troubadour