如果我启动gdb会话并输入:
(gdb) p/x 1024*1024*1024*2
$2 = 0x80000000
但如果我越过32位阈值,我得到:
(gdb) p/x 1024*1024*1024*4
$3 = 0x0
如何在gdb中显示整个64位值?
答案 0 :(得分:4)
除了Yaniv的答案外,您还可以在其中一个数字上使用ll
后缀(取决于您的系统,只有一个l
可以使用):
(gdb) p/x 1024*1024*1024*4ll
$2 = 0x100000000
如果要使用x命令将内存内容打印为64位值,则可以使用g
大小修饰符:
(gdb) x/8xg
0x7fffffffe008: 0x0000000000400e44 0x00007ffff7fe3000
0x7fffffffe018: 0x0000000000000000 0x0000000000000000
0x7fffffffe028: 0x0000000000f0b5ff 0x00000000000000c2
0x7fffffffe038: 0x0000000000000100 0x0000000000000001
答案 1 :(得分:1)
尝试转换值:
(gdb) p/x (unsigned long long) 1024*1024*1024*4
$1 = 0x100000000