我正在用GDB调试一个程序。
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这是怎么回事?
发布于 2010-05-04 15:24:12
您需要在gdb语句中获取示例的地址:
(gdb) x/4bt &example发布于 2010-05-04 15:25:20
我认为x命令检查内存,因此example将被解释为指针。试一试
x/4bt &example或者简单地说
print /x example发布于 2010-05-04 15:30:00
我还没有检查gdb命令的格式,但是看一下最后一条语句,您似乎希望看到存储在example中的地址是什么,而不是打印example……似乎example是all 1s (0xffffffff),当您收到错误时,您正在尝试查看内存中的该位置。
https://stackoverflow.com/questions/2763478
复制相似问题