Linux ELF NT_文件注释的含义

Linux ELF NT_文件注释的含义,linux,elf,Linux,Elf,例如,在ELF核心转储中,我们有如下内容: Start End Page Offset 0x08048000 0x08049000 0x00000000 /hshare/prog 0x08049000 0x0804a000 0x00000000 /hshare/prog 什么映射到什么 什么映射到什么 在崩溃时,您可以有效地查看二进制文件的/proc/self/maps内容 在您的例子中,prog非常小,以至于它的.text和.data可以放在一个页

例如,在ELF核心转储中,我们有如下内容:

  Start         End Page Offset
0x08048000  0x08049000  0x00000000
    /hshare/prog
0x08049000  0x0804a000  0x00000000
    /hshare/prog
什么映射到什么

什么映射到什么

在崩溃时,您可以有效地查看二进制文件的
/proc/self/maps
内容

在您的例子中,
prog
非常小,以至于它的
.text
.data
可以放在一个页面上。因此
prog
mmap
两次:一次是
r-x
权限
.text
(实际上它是第一个
PT\u加载
段,因为
。text
在链接后没有意义),一次是
数据
bss
(第二个
PR\u加载
段)具有
rw-
权限

查看
readelf-Wl prog
的输出可能会更清楚

如果将
prog
变大(例如,通过使用带
-static
的完全静态链接)并使其成为核心转储,您将看到这两个映射现在将具有不同的
页面偏移量

什么映射到什么

在崩溃时,您可以有效地查看二进制文件的
/proc/self/maps
内容

在您的例子中,
prog
非常小,以至于它的
.text
.data
可以放在一个页面上。因此
prog
mmap
两次:一次是
r-x
权限
.text
(实际上它是第一个
PT\u加载
段,因为
。text
在链接后没有意义),一次是
数据
bss
(第二个
PR\u加载
段)具有
rw-
权限

查看
readelf-Wl prog
的输出可能会更清楚

如果将
prog
变大(例如,通过使用带
-static
的完全静态链接)并使其成为核心转储,您将看到这两个映射现在将具有不同的
页面偏移量