如何列出分配给 elf 文件中特定部分的变量?

How to list up variables assigned to a specific section in an elf file?

如何列出在 elf 文件的特定部分中分配的变量?
例如,如果我执行 readelf -t vmlinux,我可以看到部分信息(开始偏移量和大小,当然在虚拟地址中),因此我可以看到 .data..percpu 部分从哪里开始以及持续多长时间。

Section Headers:
  [Nr] Name              Type             Address           Offset
       Size              EntSize          Flags  Link  Info  Align
  ....
  [18] .data..percpu     PROGBITS         ffffffc0105cb000  0054b000
       0000000000011948  0000000000000000  WA       0     0     64

我还可以使用 -s 选项列出所有符号,该选项显示所有符号的地址和大小。我可以将这些信息与部分信息结合起来,以列出 .data..percpu 部分中的所有变量。但这需要一些努力,我认为应该有一个简单的命令来列出特定部分中的变量。我可以这样做吗?

每个符号在 Ndx 列中都有其所属的部分索引。

要查找与第 18 部分匹配的所有符号,请执行以下操作:

readelf -Ws vmlinux | cut -c60- | grep ' 18 '