如果我启动gdb会话并键入:
(gdb) p/x 1024*1024*1024*2
$2 = 0x80000000
Run Code Online (Sandbox Code Playgroud)
但是,如果我超过了32位阈值,我将得到:
(gdb) p/x 1024*1024*1024*4
$3 = 0x0
Run Code Online (Sandbox Code Playgroud)
如何在gdb中显示整个64位值?
除了Yaniv的答案外,您还可以ll在其中一个数字上使用后缀(l根据您的系统,一个数字可能会起作用):
(gdb) p/x 1024*1024*1024*4ll
$2 = 0x100000000
Run Code Online (Sandbox Code Playgroud)
如果要使用x命令将内存内容打印为64位值,则可以使用gsize修饰符:
(gdb) x/8xg
0x7fffffffe008: 0x0000000000400e44 0x00007ffff7fe3000
0x7fffffffe018: 0x0000000000000000 0x0000000000000000
0x7fffffffe028: 0x0000000000f0b5ff 0x00000000000000c2
0x7fffffffe038: 0x0000000000000100 0x0000000000000001
Run Code Online (Sandbox Code Playgroud)