首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在GDB中打印64位值

如何在GDB中打印64位值
EN

Stack Overflow用户
提问于 2017-12-11 14:34:05
回答 3查看 10K关注 0票数 2

如果启动gdb会话并键入:

代码语言:javascript
复制
(gdb) p/x 1024*1024*1024*2
$2 = 0x80000000

但如果我跨过32位的门槛,我会得到:

代码语言:javascript
复制
(gdb) p/x 1024*1024*1024*4
$3 = 0x0

如何在gdb中显示整个64位值?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-08-05 02:52:30

除了Yaniv的回答之外,您还可以在其中一个数字上使用ll后缀(根据系统的不同,只需一个l即可):

代码语言:javascript
复制
(gdb) p/x 1024*1024*1024*4ll
$2 = 0x100000000

如果需要执行无符号算术,当然可以使用ull

如果要使用x命令将内存内容打印为64位值,则可以使用g大小修饰符:

代码语言:javascript
复制
(gdb) x/8xg  
0x7fffffffe008: 0x0000000000400e44  0x00007ffff7fe3000
0x7fffffffe018: 0x0000000000000000  0x0000000000000000
0x7fffffffe028: 0x0000000000f0b5ff  0x00000000000000c2
0x7fffffffe038: 0x0000000000000100  0x0000000000000001
票数 11
EN

Stack Overflow用户

发布于 2017-12-11 14:38:33

试着铸造价值:

代码语言:javascript
复制
(gdb) p/x (unsigned long long) 1024*1024*1024*4
$1 = 0x100000000
票数 1
EN

Stack Overflow用户

发布于 2022-02-25 11:53:14

在我的gdb脚本里。为了通过gdb bin -x gdb.txt再现调试过程,我使用了gdb脚本文件,因此使用了printf

代码语言:javascript
复制
printf "0x%llx\n", $rax

很管用。

代码语言:javascript
复制
pwndbg> printf "0x%llx\n", $rax
0x7ffff77c0068
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47755178

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档