我正在用GDB調試一個程序。c - 位操作困難
unsigned int example = ~0;
給我:
(gdb) x/4bt example
0xffd99788: 10101000 10010111 11011001 11111111
這是爲什麼不全部爲1?我把它定義爲〜0 ...那麼下一行代碼是:
example>>=(31);
和GDB給了我這個當我嘗試檢查比特處的內存:
(gdb) x/4bt example
0xffffffff: Cannot access memory at address 0xffffffff
是怎麼回事???
你確定這條線正在運行嗎?如果您在載入程序後並未「運行」程序並且變量是全局的,則可能無法初始化它。在main中放置一個斷點,然後環顧四周。 – luqui 2010-05-04 07:19:35
我知道它正在運行。如果「下一行」爲「example >> =(31);',那麼我在開始打印東西之前設置了一個bpoint以達到一條線。 – sepiroth 2010-05-04 07:20:48
@luqui: – Troubadour 2010-05-04 07:22:10