我正在用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