gpt4 book ai didi

c - 如何将函数符号映射到地址范围

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:42:17 25 4
gpt4 key购买 nike

确定函数符号(字符串)的地址范围的正确方法是什么?我将在 Linux 上使用静态链接的、非剥离的 C 程序。

例如,我想做这样的事情:

char* func_name = get_string_from_user();
printf("start address: %p \n", get_addr_range(func_name).start);
printf("end address: %p \n", get_addr_range(func_name).end);

起始地址应该是当前在内存中布局的函数的实际地址。我认为 gdb 和 objdump 执行类似的操作,所以应该可以,对吧?

谢谢。

最佳答案

你可以看看 BFD与 binutils 一起提供的库(与 objdump 和其他)。我曾经简单地使用过它一次,据我所知,它并不完全是微不足道的。

那里有一些用法示例(搜索“使用 libbfd”或类似的东西)。我还建议阅读 binutils 实用程序源代码。

还有带有 ELF 和 DWARF 例程的 elfutils。虽然没有使用过那个,但文档看起来很少。

关于c - 如何将函数符号映射到地址范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5187112/

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