gpt4 book ai didi

linux - Objdump 不显示完整地址

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:06:34 28 4
gpt4 key购买 nike

有没有办法在 objdump 中获取完整地址?使用的命令是:objdump -d progname

enter image description here

前导零不正确。地址应如下所示:

enter image description here

地址中的最后三个值是正确的;但是,我非常希望在 objdump 中显示完整地址。

最佳答案

在加载应用程序之前,您无法判断它将在内存中的何处结束。

试试下面的代码:

#include <stdio.h>
int main()
{
printf("%p\n", main);
}

gcc test.c编译并运行几次。

我的结果显示:

0x55f71f8936b0
0x5630ed7ff6b0
0x558a18eea6b0
...

所以你不能确定它会在内存中的什么地方结束。我相信情况并非总是如此,这种行为旨在作为一种安全“东西”。如果较旧的内核/加载程序在每次运行时都给出相同的地址,我不会感到惊讶。不过,我不确定。

当然 objdump 会给你相对地址:

00000000000006b0 <main>:

请记住,此程序的输出不会为您提供物理地址,它们仍然是虚拟地址。

重点是 objdump 转储的地址是 linker 的责任,并且由于 loader 而存在每次执行的实际虚拟地址>.

关于linux - Objdump 不显示完整地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45493756/

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