int main()
{
int a = 0;
}
我编译:
g++ -std=c++14 -g test.cpp
在gdb中运行程序:
gdb ./a.out
(gdb) break main
(gdb) run
(gdb) next
我尝试过:
(gdb) print /t &a
这将打印出11111111111111111111111111111111101110101111100
这看起来不像正确的数字,我原本期望的是0000....0000。如何从整数变量a的内存位置打印二进制值?
p /t (1 << 31)
输出为:$1 = 10000000000000000000000000000000
要打印64位文字值,可以使用:p /t (1UL << 63)
其输出为:$2 = 1000000000000000000000000000000000000000000000000000000000000000
- gallo