在调试简单的C二进制文件时,我发现了一些奇怪的内存区域。
Start Addr End Addr Size Offset objfile
0x8048000 0x8049000 0x1000 0x0 binary
0x8049000 0x804a000 0x1000 0x0 binary
0x804a000 0x804b000 0x1000 0x1000 binary
0xb7e07000 0xb7e08000 0x1000 0x0
0xb7e08000 0xb7fb8000 0x1b0000 0x0 /lib/i386-linux-gnu/libc-2.23.so
0xb7fb8000 0xb7fba000 0x2000 0x1af000 /lib/i386-linux-gnu/libc-2.23.so
0xb7fba000 0xb7fbb000 0x1000 0x1b1000 /lib/i386-linux-gnu/libc-2.23.so
0xb7fbb000 0xb7fbe000 0x3000 0x0
0xb7fd5000 0xb7fd6000 0x1000 0x0
0xb7fd6000 0xb7fd9000 0x3000 0x0 [vvar]
0xb7fd9000 0xb7fdb000 0x2000 0x0 [vdso]
0xb7fdb000 0xb7ffe000 0x23000 0x0 /lib/i386-linux-gnu/ld-2.23.so
0xb7ffe000 0xb7fff000 0x1000 0x22000 /lib/i386-linux-gnu/ld-2.23.so
0xb7fff000 0xb8000000 0x1000 0x23000 /lib/i386-linux-gnu/ld-2.23.so
如您所见,在libc
和ld
映射区域之间,
有0x3000
和0x1000
0xb7fbb000 0xb7fbe000 0x3000 0x0
0xb7fd5000 0xb7fd6000 0x1000 0x0
一些coreutils二进制文件,例如ls
和cat
也具有此区域(大小为0x3000
和0x1000
)。
该存储区有什么作用?