linux - vmlinux ELF 查找给定结构成员的偏移量

标签 linux elf

在 Linux 内核中,我需要找到所使用的结构的成员变量的偏移量。例如,对于 task_struct 类型的 init_task,我想要它的 pid 和任务的偏移量。

为此,我只有 vmlinux。我可以引用开源内核代码,但它可能与我的构建不同。

是否可以在没有源的情况下获得偏移量?

编辑:vmlinux 适用于 ARM,我可能并不总是能够在目标设备上运行 C 代码。

最佳答案

结构的大小和布局存在于已编译目标文件的调试信息中(如果您使用-g 编译并且不strip)。

pahole (又名“戳洞”,在 Gentoo 中打包为 dev-util/dwarves)读取对象的 DWARF 调试信息以输出有关结构中“洞”的信息——这对您来说可能是一个很好的起点。

关于linux - vmlinux ELF 查找给定结构成员的偏移量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1415745/

相关文章:

python - 打开文件(例如双击文件)的代码

linux - 根据分隔符将一个文件拆分为多个文件

c - 为什么当被跟踪者收到 SIGCONT 时会发生 SIGTRAP PTRACE_EVENT_STOP?

linux - 从 NFS 安装文件夹开始更改 bash 脚本中的网络 ip

c - `-rdynamic` 到底做了什么,什么时候需要它?

microcontroller - MSP430 上的 ELF 重定位类型

c - 纳米: how to show object file of a symbol in a shared library?

c - Linux 中 userfaultfd() 系统调用的旧替代方案?

Linux ELF - 为什么正常链接运行速度比 'ldd -r' 更快?

c - ARM : How does objcopy know which sections from an elf to include in a binary or ihex?