gpt4 book ai didi

c++ - Linux gdb 'examine' 行为

转载 作者:太空宇宙 更新时间:2023-11-04 07:16:14 25 4
gpt4 key购买 nike

我正在使用 gdb 探索 Linux 上的核心文件,在检查内存地址时我注意到奇怪的行为:

(gdb) x/f 0xbd091a10
0xbd091a10: 0
(gdb) x/g 0xbd091a10
0xbd091a10: 65574
(gdb) x/f 0xbd091a10
0xbd091a10: 65574

这些语句直接背靠背运行,我不明白为什么检查为 float 会返回不一致的结果。值 65574 确实有意义,因为它对应于进程最后加载的项目的标识。

有人知道这是什么原因吗?

版本详情:

Linux mx534vm 2.6.18-308.el5 #1 SMP Fri Jan 27 17:17:51 EST 2012 x86_64 x86_64 x86_64 GNU/Linux

GNU gdb (GDB) Red Hat Enterprise Linux (7.0.1-32.el5)

最佳答案

这里面没有矛盾。 'f' 和 'g' 是不同类别的说明符,'f' 表示格式,'g' 表示单位大小。每个说明符在使用时都会成为其自身类别的默认值,该类别适用于所有后续使用的“x”。因此,您的最后两个命令都等同于 x/fg 0xbd091a10

关于c++ - Linux gdb 'examine' 行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24455765/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com